SQL / was ist "besser"?
Geizhals » Forum » Programmierung » SQL / was ist "besser"? (24 Beiträge, 743 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
SQL / was ist "besser"?
29.11.2017, 21:03:36
Ich spiel mich grad ein bissl rum, die Aufgabe ist das konkatenieren......

Ich hab einen Kurs am Wifi belegt da haben wir das so gelernt:

SELECT ISNULL(akadgrad+' ','') + vorname+' '+Nachname AS Name FROM wawi.personal

Das Ergebnis schaut sauber aus, gibt's keine akad. Grad wird NULL durch '' ersetzt, es entsteht am Anfang keine unschöne Einrückung da das Leerzeichen hinter "akadgrad" durch '' ersetzt wird.
Leuchtet mir alles ein...soweit gut

Nun habe ich, auf Basis eines MSPress-SLQ Buches aber gesehen das CONCAT ja dafür sorgt das bei NULL automatisch eine leere Zeichenfolge eingesetzt wird, man erspart sich also das ISNULL(akadgrad+' ','')  aus dem oberen Beispiel.

Versuche ich nun das selbe Ergebnis wie oben zu erreichen mache ich folgendes:

SELECT CONCAT(akadgrad,' ',Vorname,' ',Nachname) AS Name FROM wawi.personal

Das sorgt nun für ein Leerzeichen vor dem Namen wenn es keinen akad. Grad gibt. Also hab ich das mal erweitert:

SELECT LTRIM(CONCAT(akadgrad,' ',Vorname,' ',Nachname)) AS Name FROM wawi.personal

Und nun sieht das Ergebnis gleich aus wie im ersten Statement.

So, nun die Fragen:

SELECT LTRIM(CONCAT(akadgrad,' ',Vorname,' ',Nachname)) AS Name FROM wawi.personal baut jo nun auf Standard SQL auf, während ISNULL jo nur bei T-SQL verfügbar ist. Demzufolge wäre es doch besser mit CONCAT und LTRM zu arbeiten. Auch scheint mir diese Version irgendwie "übersichtlicher/logischer)

Aber ich denk mir es wird einen Grund haben das wir das im Kurs mit ISNULL gelernt haben.

Kann jemand erkennen ob die erste Version "besser" ist als die zweite? Was spricht für v1, was spricht für v2? Funktionieren tun beide Versionen, beide Ergebnisse sehen auch gleich aus...



29.11.2017, 21:03 Uhr - Editiert von h-works, alte Version: hier
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: SQL / was ist "besser"?
 (hellbringer am 29.11.2017, 21:31:27)
..  Re(2): SQL / was ist "besser"?
 (h-works am 29.11.2017, 21:51:19)
...  Re(3): SQL / was ist "besser"?
 (hellbringer am 29.11.2017, 21:55:13)
....  Re(4): SQL / was ist "besser"?
 (h-works am 29.11.2017, 22:07:25)
.  Re: SQL / was ist "besser"?
 (zeddicus am 29.11.2017, 22:56:37)
.  Re: SQL / was ist "besser"?
 (Geodomus am 29.11.2017, 23:46:55)
..  Re(2): SQL / was ist "besser"?
 (Psychopath am 30.11.2017, 00:39:04)
...  Re(3): SQL / was ist "besser"?
 (Geodomus am 30.11.2017, 09:26:57)
..  Re(2): SQL / was ist "besser"?
 (h-works am 30.11.2017, 09:45:54)
..  Re(2): SQL / was ist "besser"?  (pong am 30.11.2017, 19:54:07)
.  Re: SQL / was ist "besser"?
 (wi09 am 30.11.2017, 11:37:50)
..  Re(2): SQL / was ist "besser"?
 (hellbringer am 30.11.2017, 11:54:31)
...  Re(3): SQL / was ist "besser"?  (wi09 am 30.11.2017, 12:07:42)
....  Re(4): SQL / was ist "besser"?  (hellbringer am 30.11.2017, 12:12:02)
.....  Re(5): SQL / was ist "besser"?  (wi09 am 30.11.2017, 12:55:53)
......  Re(6): SQL / was ist "besser"?  (pong am 30.11.2017, 19:57:08)
.......  Re(7): SQL / was ist "besser"?  (wi09 am 01.12.2017, 13:56:22)
........  Re(8): SQL / was ist "besser"?
 (pong am 01.12.2017, 17:22:11)
.  Re: SQL / was ist "besser"?  (Kuebel am 30.11.2017, 16:06:31)
.  Re: SQL / was ist "besser"?  (pong am 30.11.2017, 20:02:11)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung