Hmm, har nu hållit på ett par dagar med denna #¤#%&& sortering o denvill inte riktigt sortera GatuNr [string] rätt, använder denna selecsats o vet att alla tomma är satta till <NULL> Du bör nämna vilken databas du använder och hur du vill sortera. Hej! Jag tror frågeställaren vill ha med även det poster som är null. Tjat om null - igen :)
SELECT GATA,GATUNR,NAMN FROM ABONNENTER WHERE GATA='Beckasinvägen' ORDER BY
CASE WHEN gata IS NULL THEN 'ÖÖÖ'ELSE 'AAA'END,
CASE WHEN gatunr IS NULL THEN 1 ELSE 0 END, <---- string
CASE WHEN namn IS NULL THEN 'ÖÖÖ'ELSE 'AA' END
Kan inte göra om gatunr eftrsom det kan finnas 1A,2B etc etc ...Sv: Tjat om null - igen :)
Jag antar att du kör SQL server och att du vill sortera tomma fält sist. Tyvärr kan jag inte testa följande SQL sats:
SELECT GATA, GATUNR, NAMN
FROM ABONNENTER
WHERE GATA=''Beckasinvägen''
ORDER BY gata IS NULL, gata,
gatunr IS NULL, gatunr,
namn IS NULL, namn
I access kan man sortera FältNamn IS NULL fallande för att poster med tomt fält skall hamna sist.
I SQL server är booelska värden 1 och 0 till skillnad från Access''s -1 och 0. JAg misstänker att SQL server inte tillåter sortering på FältNamn IS NULL. Om den gör det kan du testa med stigande och fallande sortering.Sv: Tjat om null - igen :)
Använder du en SQL server databas, och vill få alla NULLvärden sist (vet inte om det är vad du vill).
Kan du skriva "ORDER BY gatunr DESC".
Annars kan du skriva SELECT satsen så här:
SELECT GATA,GATUNR,NAMN FROM ABONNENTER WHERE GATA=''Beckasinvägen'' AND GATUNR IS NOT NULL ORDER BY ( ASC eller DESC beroende i vilken ordning du vill ha dem).
//HåkanSv: Tjat om null - igen :)
Null posterna skall komma sist och tallen skall vara stigande sorterat.
Man kan ju även använda en UNION:
SELECT Tabellnamn.*, 1 AS SortId
FROM Tabellnamn
WHERE Tabellnamn.FältNamn IS NOT NULL
ORDER BY SortId, Tabellnamn.FältNamn
UNION ALL
SELECT Tabellnamn.*, 2 AS SortId
FROM Tabellnamn
WHERE Tabellnamn.FältNamn IS NULL
ORDER BY SortId, Tabellnamn.FältNamn