ich folgende Skript haben:COALESCE: SQL Server vs Oracle
SELECT 1
FROM Table t
WHERE COALESCE(NULL, t.ID) = NULL;
t
ist leer. Die Abfrage gibt 1
für Oracle zurück und gibt nichts für SQL Server zurück.
Was ist eine Ausgabe von COALESCE
Operation für SQL Server? Können wir diesen Code so korrigieren, dass er sich für beide DB auf die gleiche Weise verhält?
Es ist unmöglich, dass Oracle "1" zurückgibt, wenn die Tabelle leer ist. –
Nicht wahr in Bezug auf Oracle. Ihre Abfrage gibt in keinem Datenbankprodukt, das SQL (Oracle, SQL Server und ** alle ** andere SQL-Datenbanken) verwendet, Zeilen zurück, unabhängig davon, ob "t" leer ist oder nicht. Denn nichts ist jemals gleich "NULL". – mathguy