sql >> Database >  >> RDS >> Sqlserver

Een string vervangen als record NULL is in T-SQL

U kunt COALESCE gebruiken of ISNULL . De eerste is standaard en retourneert de eerste NOT NULL argument (of NULL als alle argumenten NULL zijn )

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

ISNULL is beperkt tot slechts 2 argumenten, maar is efficiënter in SQL Server als de eerste te testen waarde duur is om te evalueren (bijvoorbeeld een subquery).

Een mogelijke "gotcha" met ISNULL om op te letten is dat het het datatype van de eerste parameter retourneert, dus als de te vervangen string langer is dan het kolomdatatype zou toestaan, heb je een cast nodig.

Bijv.

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

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Zou Unk teruggeven

Maar ISNULL(CAST(C as VARCHAR(7)),'Unknown') of COALESCE zouden beide naar wens werken.



  1. Django:verander TimeField in DateTimeField in models.py

  2. Hoe zorg ik ervoor dat MySQL onderstrepingstekens behandelt als een woordscheidingsteken voor zoeken in volledige tekst?

  3. Oracle naar MySQL tijdstempel conversie in MySQL insert statement

  4. Hoe u uw MySQL- en MariaDB-back-ups kunt versleutelen