Samstag, 9. Februar 2013

Standard SQL und Leerzeichen

Wenn es diverse Systeme und Zeitgenossen schaffen, Zeichenketten mit Leerzeichen am Ende in der Datenbank zu speichern: Sie sollten diese entfernen.

In Standard SQL sind diese Leerzeichen beim Vergleich nicht signifikant:

select 'blanks in comparison' "Standard SQL",
case when ('123 '='123') then 'No' else 'Yes' end "trailing blanks significant",
case when (' 123'='123') then 'No' else 'Yes' end "leading  blanks significant",
case when (' 123 '='123') then 'No' else 'Yes' end "both blanks significant"
from rdb$database

Bei den üblichen Verdächtigen unter den Hochsprachen schon.