webForumDet fria alternativet
Logga in / Bli medlem

Sorteringsproblem

Databaser & SQL

7 svar · 549 visningar · startad av corona

Medlem sedan feb. 200470 inlägg
Trådstart#1

Undrar hur jag ska göra för att min SQL-sats inte ska plocka med poster som är tomma dvs "null" vid sortering.
Jag ska sortera en namnlista där visa personer har titel (Ordförande och Vice Ordförande) och andra har ingen titel alls.
Ordförande ska komma först osv ..
Min kod:
Visa = "SELECT * FROM Utb WHERE RegionNr = '" & Lansdel & "' ORDER BY Titel DESC"

Nu visas personer utan titel först pga att posten är tom.
Hur undviker jag detta?

//Annette

Medlem sedan juni 200032 967 inlägg
#2
Visa = "SELECT * FROM Utb WHERE RegionNr = '" & Lansdel & "' AND TITEL IS NOT NULL ORDER BY Titel DESC"
Medlem sedan dec. 200012 464 inlägg
#3
order by case titel
 when 'Ordförande' then 1
 when 'Vice ordförande' then 2
 when '...' then 3
 when ...
 else 9999 end

Flyttas från ASP

Medlem sedan feb. 200470 inlägg
#4

Hej igen!
Jag får det inte att fungera. Får hela tiden fel. Har jag skrivit fel i koden?
Visa = "SELECT * FROM Utb WHERE RegionNr = '" & Lansdel & "' ORDER BY case Titel When 'Ordförande' Then 1 When 'Vice ordförande' Then 2 When '...' Then 3 When ... Else 9999 End"

//Annette

Medlem sedan dec. 200012 464 inlägg
#5

Vad får du för fel? Vilken databashanterare använder du?

Then 2 When '...' Then 3 When ... Else 9999 End"

Här menade jag att du skulle fylla i fler titlar som du ville ha med i sorteringen.

Medlem sedan feb. 200470 inlägg
#6

Hej igen!

Jag använder mig av MS Access, om det är det du menar?
Felet jag får är:
(0x80004005)
Unspecified error som pekar på denna kodrad:
RecSet2.Open Visa, Connect, adOpenStatic, adLockOptimistic

Mitt anrop till databasen är:

Set RecSet2 = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM UtbRads WHERE RegionNr = '" & Lansdel & "' ORDER BY case Titel When 'Ordförande' Then 1 When 'Vice ordförande' Then 2 When '...' Then 3 When ... Else 9999 End"
RecSet2.Open Visa, Connect, adOpenStatic, adLockOptimistic

//Annette

Medlem sedan dec. 200012 464 inlägg
#7

Ok, Access är inte som andra databashanterare

Visa = "SELECT * FROM UtbRads WHERE RegionNr = '" & Lansdel & "' ORDER BY iif(Titel= 'Ordförande',1,iif(titel = 'Vice ordförande' ,2,3))"
Medlem sedan feb. 200470 inlägg
#8

Stort tack för snabba svar!
Då har man lärt sig lite mer och det är jag glad för!
Helt toppen med detta forum!!!

//Annette

271 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)