Probleme beim Konvertieren von nvarchar Spalten in Int
From: Andre Grumbach (andre.grumbach_at_.itvt.nospam.de)
Date: 08/26/04
- Next message: Jochen Kalmbach: "RE: Rausfinden ob eine spezielle Instanz installiert ist !?"
- Previous message: anonymous_at_discussions.microsoft.com: "Re: Keine Verbindung mehr zu SQL7.0 auf Win2K"
- Next in thread: Goran Stevanovic: "Re: Probleme beim Konvertieren von nvarchar Spalten in Int"
- Reply: Goran Stevanovic: "Re: Probleme beim Konvertieren von nvarchar Spalten in Int"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 26 Aug 2004 10:54:32 +0200
Hallo NG,
ich bin leider ein absoluter Anfänger in SQL und hoffe das es trotzdem eine
einfache möglichkeit für mein Problem gibt.
Also ich habe folgendes Problem:
Ich habe in einer Spalte (datentyp nvarchar) ein menge von Zahlen stehen (in
der Regel stehen da nur Zahlen keine Buchstaben).
Nun will ich mir die höchste Zahl von diesen ausgeben, was jedoch leider
dank dem nvarchar Datentyp der Spalte nicht geht da nun miene ausgabe wie
folgt aussieht:
1
10
11
2
3
4
5
6...
Die SQL Anweisung die ich dafür verwendet habe lautet wiefolgt:
Select Wert
>From tmp
Order By Wert
Nun habe ich das selbe mit einer Spalte gemacht, die den Datentyp int hat,
und oh Wunder, es funktioniert.
Da ich nun aber das Problem habe, den Spaltentyp von nvarchar nach int nicht
ändern kann (wird von diesem System leider so vorgeschrieben), habe ich mir
überlegt in meiner SQL Anweisung einen Temoporäre Tabelle anzugeben die als
Spalte int hat.
Nun sieht meine Prozedur wie folgt aus:
Declare @tmptable Table (Wert int)
Insert @tmptable Select Wert
>From tmp
Select *
>From @tmptable
Order By Wert DESC
Diese Prozedur gibt mir auch die Werte zurück die ich brauche, jedoch gibt
es auch hierbei ein kleines Problem, wenn rein zufällig einer in die Spalte
Wert statt einer Zahl einen Buchstaben rein schreibt, stürtzt die ganze
Prozedur ab.
Um nochmal genau zu beschreiben was ich haben will, da ich wohl etwas weit
ausgeschweift habe, hier die Erkläung:
Tabelle:
Wert 100001,100005,100002,100006,100007,100008,100009,
900001,900002900005,900004....
Meine SQL Anweisung soll mir nun alle Werte auslesen die als Wert größer
bzw. gleich 900000, in der Reihenfolge: 900010 zu 900000, haben.
Was im Prinzip mit einem Where gemacht werden kann, jedoch tritt auch hier
das Problem auf des möglicherweise in diese Spalte aus versehen A oder ein
andere Buchstabe drin steht.
Diese müsste irgendwie abgefangen werden, und zwar so, das diese Wert
entweder garnicht übernommen wird oder z.B. 0 für diesen Wert da steht.
Ich hoffe ich habe euch nicht zusehr verwirrt und enier von euch hat eine
Lösung für mein Problem.
MfG
Andre Grumbach
- Next message: Jochen Kalmbach: "RE: Rausfinden ob eine spezielle Instanz installiert ist !?"
- Previous message: anonymous_at_discussions.microsoft.com: "Re: Keine Verbindung mehr zu SQL7.0 auf Win2K"
- Next in thread: Goran Stevanovic: "Re: Probleme beim Konvertieren von nvarchar Spalten in Int"
- Reply: Goran Stevanovic: "Re: Probleme beim Konvertieren von nvarchar Spalten in Int"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|