Ingo Reschke » Posts for tag 'cast'

SQL id aus einem Textfeld

Ausgangslage:
Ich haben 2 DB-Tabellen die ich “joinen” möchte. In Tabelle A ist ein Feld welches aus historischen und architektonischen Gründen vom Typ “Text” ist und den Fremdschlüssel auf Tabelle B enthält. Ja ich bin mir sicher das in dem Feld auf jeden Fall nur ein int drin steht.
Wenn man nun versucht das Feld zu einem int zu casten dann meldet der MS-Sql Server :”Die explizite Konvertierung des text-Datentyps in int ist nicht zulässig.
Folgender kleiner Trick führt dennoch zum Erfolg.

  1. Caste das Feld zum varchar()
  2. Caste das Ergebnis zu int

Dann Schluckt der SQL-Server das auch und ich kann die Tabelle B dran joinen.

SELECT	form_id, feld5 AS artikel_id, feld7 AS cnt, b.preis
FROM 	tabelleA a
JOIN 	tabelleB b ON b.id = CAST(CAST(feld5 AS VARCHAR(10)) AS INT)
WHERE 	form_id = 1164

Resource:

http://msdn.microsoft.com/de-de/library/ms187928.aspx

Posted in SQL
Tags: ,