Avatar billede bbe1379 Nybegynder
06. juni 2005 - 14:19 Der er 2 kommentarer og
1 løsning

order by streng

Kan man sortere resultatet af en SQL forespørgsel med en kommasepereret streng af værdier?

Jeg har en streng der indeholder nogle tal-værdier - f.eks.
1,49,2,23,74,3,9

Ud fra den steng laver jeg en forespørgsel med IN-funktionen - f.eks.

SELECT textfelt, idxfelt FROM mintabel Where idxfelt IN(1,49,2,23,74,3,9)


Jeg vil gerne have at resultatet følger samme rækkefølge som strengen, men nedenstående virker ikke.

SELECT textfelt, idxfelt FROM mintabel Where idxfelt IN(1,49,2,23,74,3,9) Order by '1,49,2,23,74,3,9'

Tallene svarer til værdier i 'idxfelt'

Hvem kan hjælpè?
Avatar billede jpvj Nybegynder
06. juni 2005 - 14:33 #1
Hmmm... det kan man ikke gøre sådan.

Eneste vej frem, er at lave en løkke, der bygger en SQL streng.

Noget i stil med

idArr = (1,49,2,23,74,3,9)
SelectStr = "SELECT textfelt, idxfelt FROM mintabel WHERE idxfelt="
n=len(idArr)
sqlStr = ""
for i=1 to n
  sqlStr=SqlStr & SelectStr & idArr(i)
  if i<n then SqlStr=SqlStr & " " & vbCrLf & "UNION" & vbCrLf
next
Avatar billede bbe1379 Nybegynder
09. juni 2005 - 09:27 #2
det lyder ubehageligt - kan det virkeligt ikke gøres smartere?
Avatar billede bbe1379 Nybegynder
12. august 2005 - 21:22 #3
hey - beklager den lange svartid. Jeg troede at jeg havde lukket tråden.

Ingen bedre svar, her kommer pointene. Tak for indsatsen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester