sql >> Databáze >  >> RDS >> Sqlserver

Jak nahradit řetězec, pokud je záznam v T-SQL NULL

Můžete použít COALESCE nebo ISNULL . První je standardní a vrací první NOT NULL argument (nebo NULL pokud jsou všechny argumenty NULL )

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

ISNULL je omezena pouze na 2 argumenty, ale je efektivnější v SQL Server, pokud je první testovaná hodnota nákladná na vyhodnocení (např. poddotaz).

Jeden potenciální problém s ISNULL je třeba si uvědomit, že vrací datový typ prvního parametru, takže pokud je řetězec, který má být nahrazen, delší, než by umožňoval datový typ sloupce, budete potřebovat přetypování.

Např.

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

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Vrátí Unk

Ale ISNULL(CAST(C as VARCHAR(7)),'Unknown') nebo COALESCE oba by fungovaly podle potřeby.



  1. MySQL - Zatímco v klauzuli SELECT

  2. Výkon dotazu na indexovaný booleovský sloupec vs sloupec Datetime

  3. SQLFeatureNotSupportedException na getArray

  4. Jak použít návratové hodnoty jedné úlohy v jiné úloze pro jiného hostitele v ansible