Prüfen auf NULL oder leere Zeichenkette

Themen rund um den praktischen Einsatz von Firebird. Fragen zu SQL, Performance, Datenbankstrukturen, etc.

Moderator: thorben.braun

bfuerchau
Beiträge: 545
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

0160 ist eine Dezimal-Eingabe und speichert den Hexwert x'A0', HTML   (no break space).
Leerzeichen/Space ist in ASCII/ANSI aber X'20'.
Der Vergleich rtrim(feld) = '' kann daher nicht zutreffen, da x'A0' eben nicht getrimmt wird.
ALT+0160 wird in der Textverarbetung gerne verwendet um bestimmte Wörter dann nicht zu trennen bzw. einen Zeilenumbruch zu machen, z.B. bei "Meine\0xA0Firma\0xA0GmbH".

Um also auch dieses zu prüfen benötigst du noch den Replace:

select * from (

select cast(x'A0' as char(10)) text
from rdb$database

)
where replace(text, x'A0', ' ') = ''
Antworten