Probleme beim Konvertieren von nvarchar Spalten in Int

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Andre Grumbach (andre.grumbach_at_.itvt.nospam.de)
Date: 08/26/04


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



Relevant Pages

  • Re: Datentyp von @@identity
    ... ich dachte immer der Datentyp von @@identity hängt von dem Datentyp ... wenn ich auf einer Bigint Spalte mit Autoincrement nach ... bin mir allerdings nicht sicher, ob das am SQL Server, an dem SQL ... Server Connector oder am Framework liegt. ...
    (microsoft.public.de.sqlserver)
  • Re: SSIS Problem mit Excel Spalten
    ... Das Problem ist, dass Excel als Datenbank angesehen wird und versucht wird, anhand der ersten Spalteneinträge den Datentyp zu bestimmen. ... Ich habe ein Problem mit einem Excel Dokument, welches ich in eine SQL ... Eine Spalte enthält neben den Texten "Gut" und "Schlecht" durch einen Fehler ... Die SQL Server Spalte in die diese Werte ...
    (microsoft.public.de.sqlserver)
  • SSIS Paket: Datenflusstask Daten abschneiden
    ... In einem SSIS Paket werden mehrere Textdateien in SQL Tabellen importiert. ... dass die enthaltenen Daten in einer Spalte länger sind ... teilweise ausländische PLZ mit 6 oder mehr Stellen beinhaltet. ... Kann ich das Problem durch abschneiden der Spalte auf 5 Stellen beheben? ...
    (microsoft.public.de.sqlserver)
  • Re: PostgreSQL Function mehrspaltig?
    ... Der liefert mir die Fehlermeldung, ... ' LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; ... Das letzte SELECT muss genau eine Spalte zurueckgeben. ...
    (de.comp.datenbanken.misc)
  • Selects schachteln
    ... mal wieder etwas SQL for Dummies: ... LongDate, COUNTAS Unr ... Dieser SQL SELECT läuft einwandfrei und liefert mir eine Spalte mit der ... Next by Date: ...
    (microsoft.public.de.sqlserver)