MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 22.02.2018, 20:43   #1
stefaktiv
MOF User
MOF User
Tipp T-SQL : MSSQL 2016 - Alternative zu Right-Befehl

Ich stell gerade eine Datenbank auf einem MSSQL-Server auf die In-Memory-Technology um. Hierzu muss ich die systemintern kompiliert gespeicherte Prozeduren migrieren. Leider wird derzeit die Funktion "RIGTH" noch nicht unterstützt (warum auch immer - eigentlich eine Basisfunktion), weswegen ich auf der Suche nach einer Lösung für folgenden SQL-Befehl bin:

RIGHT('0' + CONVERT(nvarchar, Nummer), 2)

Der Befehl macht eigentlich nichts anderes als einen nummerischen Wert in einen Text umzuwandeln. Wenn die Zahl kleiner als 10 ist, dann wird eine 0 vorangestellt (also 01, 02, 03 etc.). Größere Werte als 99 gibt es nicht, weswegen dieser Befehl für mich immer funktioniert hat.
stefaktiv ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 22.02.2018, 21:28   #2
stendate
MOF User
MOF User
Standard

Geht REPLACE, STR und LEN?

Code:

DECLARE @Nummer INT = 9;
SELECT REPLACE(STR(@Nummer,CASE WHEN LEN(@Nummer) < 3 THEN 2 ELSE LEN(@Nummer) END),' ',0);
stendate ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.02.2018, 14:32   #3
stefaktiv
Threadstarter Threadstarter
MOF User
MOF User
Standard

Leider nein:

Code:

Funktion "str" wird von systemintern kompilierte Module nicht unterstützt.
Nachricht 10794, Stufe 16, Status 93, Prozedur Prod_XX, Zeile 34 [Batchstartzeile 13]
Funktion "replace" wird von systemintern kompilierte Module nicht unterstützt.
Nachricht 10794, Stufe 16, Status 93, Prozedur Prod_XX, Zeile 35 [Batchstartzeile 13]
stefaktiv ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.02.2018, 14:47   #4
hcscherzer
MOF Guru
MOF Guru
Standard

@stendate: Viele Access- (Jet-) Funktionen kennt der MSSQL nicht.
Typ-Umwandlungen stets mit CAST() oder CONVERT().
REPLACE() und LEN() sind in TSQL bekannt - dass sie hier als Fehler angezeigt werden, liegt wohl am vorherigen Fehler.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.02.2018, 15:02   #5
stefaktiv
Threadstarter Threadstarter
MOF User
MOF User
Standard

Laut Beschreibung der Microsoft-Seite müsste die Funktion SUBSTRING funktionieren. Bin am überlegen, ob man es damit hinbekommt?
stefaktiv ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.02.2018, 16:27   #6
sonic8
MOF Profi
MOF Profi
Standard

Zitat: von stefaktiv Beitrag anzeigen

Laut Beschreibung der Microsoft-Seite müsste die Funktion SUBSTRING funktionieren. Bin am überlegen, ob man es damit hinbekommt?

In Kombination mit Len() sollte das gehen. - Nur, wenn du Len() verwenden kannst, brauchst eigentlich das Right/Substring gar nicht mehr.

Code:

CASE WHEN Len(convert(varchar,Nummer))>=2 
  THEN convert(varchar,Nummer) 
  ELSE '0' + convert(varchar,Nummer) 
END

__________________

Neues Access 2019 Feature angekündigt: Modern Charts
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.02.2018, 07:32   #7
stendate
MOF User
MOF User
Standard

Zitat: von hcscherzer Beitrag anzeigen

@stendate: Viele Access- (Jet-) Funktionen kennt der MSSQL nicht.

Ich habe nicht von Access oder Jet gesprochen. Wie kommst du darauf?
stendate ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.02.2018, 10:56   #8
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat:

Ich habe nicht von Access oder Jet gesprochen. Wie kommst du darauf?

Die Funktion STR() hat mich diesen Hintergrund vermuten lassen ...

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.