Num. Sortieren eines varchar-Feld

18/02/2008 - 14:21 von dula | Report spam
Hallo,

Ich möchte gern eine Tabelle sortieren nach einem Feld (z.B.
HausNr:varchar). Dieses Feld enthàlt werte, wie z.B. 112 a, 5, 67, Ich
habe folgendes probiert:

SELECT * FROM Table1
ORDER BY CONVERT(INT, HausNr)

Sie Ausführung bricht aber mit Fehler ab:
Syntaxfehler beim Konvertieren des varchar-Wertes '112 a' in eine Spalte vom
Datentyp int.
...

Ich bitte um Hilfe!
 

Lesen sie die antworten

#1 Christoph Ingenhaag
18/02/2008 - 16:04 | Warnen spam
"Torsten Schuessler" wrote:

Hi dula,

wie wàre es hiermit:

SELECT *
FROM Table1
ORDER BY LEFT(HausNr, PATINDEX('%[0-9]%', HausNr) - 1),
CAST(SUBSTRING(HausNr, PATINDEX('%[0-9]%', HausNr),
LEN(HausNr)-PATINDEX('%[0-9]%',HausNr)) AS INT)

CU
tosc

InsideSQL.org: http://www.insidesql.org
Blog: http://www.insidesql.de/blogs/tosc

"dula" schrieb im Newsbeitrag news:%
> Hallo,
>
> Ich möchte gern eine Tabelle sortieren nach einem Feld (z.B.
> HausNr:varchar). Dieses Feld enthàlt werte, wie z.B. 112 a, 5, 67, . Ich
> habe folgendes probiert:
>
> SELECT * FROM Table1
> ORDER BY CONVERT(INT, HausNr)
>
> Sie Ausführung bricht aber mit Fehler ab:
> Syntaxfehler beim Konvertieren des varchar-Wertes '112 a' in eine Spalte vom
> Datentyp int.
> ...
>
> Ich bitte um Hilfe!
>
>



Hi Torsten,

sag mal, hast du deinen Code mal mit anderen Werten als 112 a, 5, 67
ausprobiert?

Vg
Christoph

Ähnliche fragen