Kategorien
Programmierung SQL

SQL: Führende Nullen aus SQL in Excelimport erhalten

Beim Import von Textdateien, gerade bei automatisierter Übergabe aus Drittanwendungen, werden von Excel gerne die vorhandenen, führenden Nullen entfernt. Hier schlägt die Autoformatierung von Excel zu und übernimmt Telefon-Vorwahlen, Artikelnummern und Co. falsch bzw. abweichend. Das kann man mit einem kleinen Trick schon bei der Datenzusammenstellung im SQL-Statement umgehen…

Hier die Lösung für Oracle:

select concat(concat('=t("',artikelnr),'")')
from   artikel

So sollte es z.B. für Informix aussehen:

Select '=t("'  || trunc(artikelnr) || '")'
from   artikel

Was wurde gemacht? Die möglichen Lösungen von MS funktionieren hier nicht, da im SQL kein Hochkomma im Text übergeben werden kann und die Übergabe ja automatisch funktionieren soll. Letzteres verhindert die Möglichkeit, bei der Übernahme die Spalte als Text zu übernehmen.

Der Trick besteht darin, nicht einfach die (im Beispiel) Artikelnummer zu übergeben, sondern diese gleich in die Excel-Funktion T() zu verpacken. Diese wandelt eine Zahl in einen Text um.
Ein geschachteltes CONCAT ist notwendig, da CONCAT jeweils nur zwei Elemente verbunden werden können.

Eine Antwort auf „SQL: Führende Nullen aus SQL in Excelimport erhalten“

Kleiner Tipp: Unter Oracle funktioniert in der Regel auch

SELECT '=t("' || artikelnr || '")'
FROM   artikel

Sind ein paar Klammern weniger und ein bisschen Übersichtlichkeit mehr.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.