Hallo! > Folgendes Problem: Ich muss aus einer externen Datenbank > Daten auslesen und sie etwas transformiert in meine eigene > Datenbank einfuegen. Im speziellen habe ich Probleme mit dem > Import einer Tabelle, die Adressen speichert. > > Dort gibt es (unter Anderem) eine Spalte mit dem Namen > "telefonindex". Ausserdem gibt es zehn weitere Spalten: > "telefon1", "telefon2", "telefon3"...."telefon10". In jeder > dieser Spalte kann eine Telefonnummer stehen. (fuer jeden > einzelnen Eintrag in der Tabelle, wohlgemerkt!). Die Spalte > "telefonindex" gibt nun an, welche dieser Spalten die > wirkliche Telefonnummer enthaelt. Bitte, bitte, fragt mich > nicht, warum das so gemacht wurde....ich habe keine Ahnung... > Ich wuerde nur gerne mit einer einfachen Select-Anweisung > (Transact-SQL vom MS-Sql-Server 2000) die richtige > Telefonnummer herausfischen. > > Sowas wie den Spaltennamen aus dem string "telefon" und der > in der Spalte "telefonindex" gespeicherten Zahl > zusammenbasteln geht wohl nicht.
Variante 1 - VIEW CREATE VIEW vw_adressen AS SELECT ..., telefon1 AS telefon FROM adressen WHERE telefonindex = 1 UNION SELECT ..., telefon2 AS telefon FROM adressen WHERE telefonindex = 2 UNION ... Variante 2 - Userdefined Function CREATE FUNCTION telefon (@ti VARCHAR(20), @t1 VARCHAR(20), @t2 VARCHAR(20), ...) RETURNS VARCHAR(20) AS CASE @ti WHEN 1 THEN RETURN @t1 WHEN 2 THEN RETURN @t2 ... END Die Funktion kannst Du z. B. so einsetzen: SELECT ..., telefon(telefonindex, telefon1, telefon2, ...) FROM adressen Variante 3 - Import mit Data Transformation Services Im DTS kannst Du ein VBScript oder T-SQL-Script einsetzen, um jeweils nur die richtige Telefonnummer zu importieren. Freundliche Gr��e Joachim van de Bruck | [aspdedotnet] als archive@jab.org subscribed | http://www.dotnetgerman.com/archiv/aspdedotnet/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.dotnetgerman.com/listen/aspDEdotnet.asp
