Discussion:
Führende "0" in Zahlenwert
(zu alt für eine Antwort)
Hendrik Wittke
2004-06-19 07:55:36 UTC
Permalink
Hallo,


folgendes Problem:

ich erzeuge via SQL-Abfrage eine temporäre Tabelle für einen DATEV-Export.
Nun sind in der Ursprungstabelle Zahlenwerte vorhanden, die ich mit
"führender 0" ausgeben werden müssen: 35 = "035" Die Zahl kann nur maximal 3
Stellig sein. Mit "Access"-SQL ist das kein Problem (Format(35;"000")), aber
beim SQL-Server finde ich keine passende Funktion, ohne ein halbes Programm
dafür schreiben zu müssen.

Kann mir bitte jemand einen Tipp geben ?

Danke, Hendrik
Jürgen Volke
2004-06-19 08:58:25 UTC
Permalink
Hallo Hendrik
Post by Hendrik Wittke
ich erzeuge via SQL-Abfrage eine temporäre Tabelle für einen DATEV-Export.
Nun sind in der Ursprungstabelle Zahlenwerte vorhanden, die ich mit
"führender 0" ausgeben werden müssen: 35 = "035" Die Zahl kann nur maximal 3
Stellig sein. Mit "Access"-SQL ist das kein Problem (Format(35;"000")), aber
beim SQL-Server finde ich keine passende Funktion, ohne ein halbes Programm
dafür schreiben zu müssen.
Replace(str(DeinFeld,3),' ','0')

HTH Jürgen
Hendrik Wittke
2004-06-20 12:33:25 UTC
Permalink
Hallo,

danke für Deinen Beitrag, aber das sieht mir nicht gerade nach einem
SQL-Befehl aus !?
Post by Jürgen Volke
Replace(str(DeinFeld,3),' ','0')
Unter Access hätte ich keine Probleme, aber mit "reinen" MS-SQL-Server
Funktionen habe ich Schwierigkeiten.

Gruss, Hendrik
Post by Jürgen Volke
Hallo Hendrik
Post by Hendrik Wittke
ich erzeuge via SQL-Abfrage eine temporäre Tabelle für einen DATEV-Export.
Nun sind in der Ursprungstabelle Zahlenwerte vorhanden, die ich mit
"führender 0" ausgeben werden müssen: 35 = "035" Die Zahl kann nur maximal 3
Stellig sein. Mit "Access"-SQL ist das kein Problem (Format(35;"000")), aber
beim SQL-Server finde ich keine passende Funktion, ohne ein halbes Programm
dafür schreiben zu müssen.
Replace(str(DeinFeld,3),' ','0')
HTH Jürgen
Olaf Pietsch
2004-06-20 13:33:58 UTC
Permalink
Hallo Hendrik,
Post by Hendrik Wittke
danke für Deinen Beitrag, aber das sieht mir nicht gerade nach einem
SQL-Befehl aus !?
Das ist das SQL für den Microsoft SQL-Server!
Post by Hendrik Wittke
Post by Jürgen Volke
Replace(str(DeinFeld,3),' ','0')
So etwas könnte man auch noch anders formulieren, es führen ja viele Wege
nach ...

Die Beschreibung der SQL-Sprache ist zu finden in der Online Hilfe (BOL)
des SQL-Servers, m. E. sehr lesenswert, wenn man sich mit dem SQL-Server
beschäftigt.

http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp

Gruß OLaf
Hendrik Wittke
2004-06-21 09:08:34 UTC
Permalink
Hallo,

ich muss Abbitte leisten !
Ihr habt natürlich vollkommen recht. Allerdings habe ich hier 3
MS-SQl-Server Bücher für Super-Power-Developer-Spezialisten und da steht
nicht ein Wort davon drin, wenigstens nicht im Index. Ich arbeite immer mit
"CAST" oder "CONVERT". Das es eine einfach "STR"-Funktion gibt, war mir echt
unbekannt.

Vielen Dank an Jürgen & Olaf

Hendrik
Post by Olaf Pietsch
Hallo Hendrik,
Post by Hendrik Wittke
danke für Deinen Beitrag, aber das sieht mir nicht gerade nach einem
SQL-Befehl aus !?
Das ist das SQL für den Microsoft SQL-Server!
Post by Hendrik Wittke
Post by Jürgen Volke
Replace(str(DeinFeld,3),' ','0')
So etwas könnte man auch noch anders formulieren, es führen ja viele Wege
nach ...
Die Beschreibung der SQL-Sprache ist zu finden in der Online Hilfe (BOL)
des SQL-Servers, m. E. sehr lesenswert, wenn man sich mit dem SQL-Server
beschäftigt.
http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp
Gruß OLaf
Christa Kurschat
2004-06-21 12:47:32 UTC
Permalink
Hallo Hendrik,
Post by Hendrik Wittke
Hallo,
ich muss Abbitte leisten !
Ihr habt natürlich vollkommen recht. Allerdings habe ich hier 3
MS-SQl-Server Bücher für Super-Power-Developer-Spezialisten
und da steht nicht ein Wort davon drin, wenigstens nicht im
Index. Ich arbeite immer mit "CAST" oder "CONVERT". Das es
eine einfach "STR"-Funktion gibt, war mir echt unbekannt.
geht aber auch mit convert:
select right('000' + convert(varchar(3),Feld),3)

Gruß
Christa
--
Access-FAQ: http://www.donkarl.com
KnowHow.mdb: http://www.freeaccess.de
SQL-Server-FAQ: http://www.berndjungbluth.de
Newbie-Info: http://www.doerbandt.de/Access/Newbie.htm
Suchen in den Newsgroups:
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8

Thomas K?hn
2004-06-21 11:49:47 UTC
Permalink
Hallo Hendrik,
Post by Hendrik Wittke
Hallo,
ich erzeuge via SQL-Abfrage eine temporäre Tabelle für einen DATEV-Export.
Nun sind in der Ursprungstabelle Zahlenwerte vorhanden, die ich mit
"führender 0" ausgeben werden müssen: 35 = "035" Die Zahl kann nur maximal 3
Stellig sein. Mit "Access"-SQL ist das kein Problem (Format(35;"000")), aber
beim SQL-Server finde ich keine passende Funktion, ohne ein halbes Programm
dafür schreiben zu müssen.
Kann mir bitte jemand einen Tipp geben ?
Versuch's mal hiermit:

CREATE FUNCTION dbo.func_FuehrendeNullen (@i INTEGER, @l INTEGER)
RETURNS nvarchar(50) AS
BEGIN

DECLARE @ret_string nvarchar(50)
set @ret_string=convert(nvarchar(50),@i)
while len(@ret_string) < @l
set @ret_string = '0' + @ret_string

return @ret_string

END
Post by Hendrik Wittke
Danke, Hendrik
Bitte, Thomas
Loading...