webForumDet fria alternativet
Logga in / Bli medlem

Ingen normal sortering

Databaser & SQL

5 svar · 139 visningar · startad av lolukokasos

Medlem sedan mars 2001196 inlägg
Frågan#1

Hej!
Jag har en kolumn med filnamn, vad jag vet så kommer jag ha filer som; .gif, .jpg, .bmp, .doc och .edr.
Mitt problem är att en post i en relaterad tabell kan ha flera av dessa filnamn. Så, mitt problem är att i selekteringen alltid få .gif-filerna först.

Går detta? Det skulle vara skönt att slippa lägga till en kolumn som bara va till för att sköta det här.

/Lukas

Medlem sedan dec. 200012 464 inlägg
#2

Det går väl, den exakta syntaxen beror lite på vilken databas du använder

select tabell.*,case when upper(right(filename,3)) = 'GIF' then 0 else 1 end as orderCriteria from tabell order by orderCriteria,filename

Borde fungera i SQL server t.ex.

Medlem sedan mars 2001196 inlägg
#3

Tyvärr måste jag hålla mig till Access, där verkar inte denna kod funka.
Är det nån som vet hur motsvarande i Access skulle se ut? Jag skickar med koden som jag försökt med. LarsG, du får en * i kanten IGEN ;-).

/Lukas

Medlem sedan mars 2001196 inlägg
#4

Glömde koden....

SELECT DISTINCT *, case when upper(right(fil_Namn,3)) = 'GIF' then 0 else 1 end as orderCriteria
FROM Datablad LEFT JOIN Lankar ON [Datablad].[regId]=[Lankar].[reg_Id]
WHERE [niva] Between 10 And 40
ORDER BY [Datablad].[regId], orderCriteria;
Medlem sedan dec. 200012 464 inlägg
#5
SELECT *
FROM Datablad LEFT JOIN Lankar ON [Datablad].[regId]=[Lankar].[reg_Id]
WHERE [niva] Between 10 And 40
ORDER BY [Datablad].[regId], iif(ucase(right(fil_namn,3))='GIF',0,1)

Jag blir lite osäker på om Access stöder att man anger uttryck i order by. Om ovanstående inte går igenom så kan du testa detta

SELECT iif(ucase(right(fil_namn,3))='GIF',0,1),*
FROM Datablad LEFT JOIN Lankar ON [Datablad].[regId]=[Lankar].[reg_Id]
WHERE [niva] Between 10 And 40
ORDER BY [Datablad].[regId], 1
Medlem sedan mars 2001196 inlägg
#6

Båda verkar funka! Nu får du en ännu större stjärna i kanten :-D!

Man tackar!

/Lukas

262 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)