Sie überprüfen Zeichenketten gegen eine leere Zeichenkette und haben somit Probleme; in Oracle sollten Sie besser überprüfen, ob Ihr String is not null
:
SELECT CASE WHEN '7C54D3E133830A78E040A8C010014B7D' is not null
THEN '7C54D3E133830A78E040A8C010014B7D'
WHEN 'e84a4433966c4b8996ce34905acff63d' is not null
THEN 'e84a4433966c4b8996ce34905acff63d'
WHEN '7faa9126b1c6412fa58375ab2b2be1db' is not null
THEN '7faa9126b1c6412fa58375ab2b2be1db'
ELSE NULL
END
FROM DUAL
Über die Art und Weise Oracle leeren String und null behandelt, here finden Sie etwas mehr
Ein Beispiel:
select q'['' = '']' , case when '' = '' then 'YES' else 'NO' end from dual union all
select q'['' is null]' , case when '' is null then 'YES' else 'NO' end from dual union all
select q'['' = null ]' , case when '' = null then 'YES' else 'NO' end from dual union all
select q'[null = null]' , case when null = null then 'YES' else 'NO' end from dual union all
select q'[null is null]' , case when null is null then 'YES' else 'NO' end from dual union all
select q'['' != '']' , case when '' != '' then 'YES' else 'NO' end from dual union all
select q'['' is not null]' , case when '' is not null then 'YES' else 'NO' end from dual union all
select q'['' != null ]' , case when '' != null then 'YES' else 'NO' end from dual union all
select q'[null != null]' , case when null != null then 'YES' else 'NO' end from dual union all
select q'[null is not null]', case when null is not null then 'YES' else 'NO' end from dual
gibt:
'' = '' NO
'' is null YES
'' = null NO
null = null NO
null is null YES
'' != '' NO
'' is not null NO
'' != null NO
null != null NO
null is not null NO
Mit einem Wort, die einzige Kontrolle, die Sie können verlassen, wenn es um NULL
sprechen, ist: IS [NOT] NULL
Sind Sie sicher, dass Sie diese Abfrage verwenden und/oder Sie die Ausgabe richtig lesen? –
Ja, die Ausgabe ist null. diese Abfrage ist eigentlich von einer Debug-Abfrage einzufügen, es fügt immer null Wert, ich bin neugierig warum, also ich schneide es und exe es auf ausgewählte Abfrage, gibt es null – deckamaha
Oracle hat nicht * leere Zeichenfolge *, aber 'null ' –