webForumDet fria alternativet

SQL server: Problem med

1 svar · 485 visningar · startad av Lukaspojken

LukaspojkenMedlem sedan maj 20011 312 inlägg
#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.

LukaspojkenMedlem 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.

168 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
165 ms — hämta tråd, inlägg och bilagor (db)