| |
V MS SQL bi rad sortiral naslednje zaporedje, ki je urejeno leksiografsko.
1 10 11 2 20 2a ...
Sedaj bi rad to sortiral po numeričnem ključu, torej da bi dobil: 1 2 2a 10 11 20
Trenutno sem sicer spisal funkcijo, ki iz vseh zapisov odstrani črke, pretvori v integer ter nato sortira po tem.
Ker pa sem bolj pristaš enostavnih rešitev, me zanima, če se da to rešiti brez uporabe funkcije, se pravi samo z SQL stavkom.
Ima kdo kakšno rešitev?
|
| |
| |
Tkole probaj:
SELECT
Data as ORG
,case when PATINDEX('%[^0-9]%',Data)>0 then SUBSTRING(Data,1,PATINDEX('%[^0-9]%',Data)-1) else Data end as Num
FROM
dbo.Podatki
order by
convert(int,case when PATINDEX('%[^0-9]%',Data)>0 then SUBSTRING(Data,1,PATINDEX('%[^0-9]%',Data)-1) else Data end)
spremenil: Matej V. (29.4.2012 ob 20.53.23)
|
| |
Prikazujem 1 od skupno 1 strani |
|