Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So ersetzen Sie eine Zeichenfolge, wenn der Datensatz in T-SQL NULL ist

Sie können COALESCE verwenden oder ISNULL . Ersteres ist Standard und gibt das erste NOT NULL zurück Argument (oder NULL wenn alle Argumente NULL sind )

SELECT COALESCE(micv.value,'Pending') as value

ISNULL ist auf nur 2 Argumente beschränkt, ist aber in SQL Server effizienter, wenn der erste zu testende Wert teuer in der Auswertung ist (z. B. eine Unterabfrage).

Ein potentieller "Erwischt" mit ISNULL Beachten Sie, dass es den Datentyp des ersten Parameters zurückgibt. Wenn also die zu ersetzende Zeichenfolge länger ist, als der Spaltendatentyp zulassen würde, benötigen Sie eine Umwandlung.

Z. B.

CREATE TABLE T(C VARCHAR(3) NULL);

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Würde Unk zurückgeben

Aber ISNULL(CAST(C as VARCHAR(7)),'Unknown') oder COALESCE würde beides wie gewünscht funktionieren.