webForumDet fria alternativet

SQL server: Problem med

Databaser & SQL

1 svar · 485 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

Hej
Jag skulle behöva lite hjälp med sql :) Jag har en kolumn som är av typen varchar. Raderna som finns i tabellen kan tex vara dessa:

1.1
1.10.2
1.100.21.1.2
11
2

Den önskvärda sorteringen på tabellen är enligt följande:

1.1
1.10.2
1.100.21.1.2
2
11

Hur lyckas man med detta? Helst skulle jag vilja få till sorteringen via sql och inte blanda in tex en dotnet-comparer eller något liknande. Är det någon som har något förslag eller en lösning på problemet?

Jag kom så här långt:
Order by IsNull(Cast(TemplateNumber as float), 0)

Och det fungerar bra tills det blir fler punkter än en, dvs 1.10.2 och 1.100.21.1.2 smäller och det är ju inte så konstigt.

Medlem sedan maj 20011 312 inlägg
#2

Jag hittade ett script som hanterar det jag vill. För den som är intresserad så finns den på den här sidan:

http://www.adp-gmbh.ch/ora/misc/sort_chapter/index.html

Det finns dock en liten begränsning och det är att den tillåter 4 "digits" men jag tror det är bara att höja upp ett värde i funktionen om man vill få det att fungera.

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)