|
| Udtræk tal del af tekst kolonne Fra : news.cybercity.dk |
Dato : 25-08-04 07:35 |
|
Hej
Jeg har en kolonne husnumre f.eks.:
1,2,3,4,5A,5B,6,7,8A,9,10,11,12A,o.s.v,
Jeg vil gerne har lavet en SQL sætning som sortere disse husnumre i
tal-orden d.v.s. som de står ovenfor, og ikke i tekstorden:
1,10,11,12A,2,3,4,5A,5B,6,7,8A,9
Jeg har forsøgt:
"Select Husnumer, CAST(Husnummer) As Int) As Col2 From Adresse b ORDER BY
Col2, Husnummer"
men SQL vil ikke caste en streng med bogstaver.
Er der nogen som har en løsning?
Mvh Thomas
| |
news.cybercity.dk (25-08-2004)
| Kommentar Fra : news.cybercity.dk |
Dato : 25-08-04 10:19 |
|
Hej
Jeg har fundet løsningen!
Jeg har oprettet en funktion på databasen som kan give mig tal delen af et
tekst felt:
CREATE FUNCTION dbo.GetIntPart ( @Hnr nvarchar(10) )
RETURNS int AS
BEGIN
DECLARE @Nummer int
DECLARE @tmpstr int
SET @tmpstr=ASCII(right(@Hnr,1))
IF (@tmpstr>=65 And @tmpstr<=90) or (@tmpstr>=97 and @tmpstr<=122)
SET @Nummer=CAST(left(@Hnr,LEN(@Hnr)-1) AS Int)
ELSE
SET @Nummer=CAST(@Hnr AS Int)
RETURN (@Nummer)
END
og bruger derefter i min SQL sætning som sådan:
SELECT HUSNRBOGST AS COL1, dbo.GetIntPart(HUSNRBOGST) AS COL2 FROM
ngtetbl.Adresse ORDER BY COL2, COL1
og får dermed sorteret husnumrene rigtigt.
Ellers tak for hjælpen!
Thomas
"news.cybercity.dk" <reklamertilsletning@hotmail.com> skrev i en meddelelse
news:cghc3r$siq$1@news.cybercity.dk...
> Hej
>
> Jeg har en kolonne husnumre f.eks.:
> 1,2,3,4,5A,5B,6,7,8A,9,10,11,12A,o.s.v,
>
> Jeg vil gerne har lavet en SQL sætning som sortere disse husnumre i
> tal-orden d.v.s. som de står ovenfor, og ikke i tekstorden:
>
> 1,10,11,12A,2,3,4,5A,5B,6,7,8A,9
>
> Jeg har forsøgt:
>
> "Select Husnumer, CAST(Husnummer) As Int) As Col2 From Adresse b ORDER BY
> Col2, Husnummer"
>
> men SQL vil ikke caste en streng med bogstaver.
>
> Er der nogen som har en løsning?
>
> Mvh Thomas
>
>
| |
|
|