sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan erstattes en streng, hvis posten er NULL i T-SQL

Du kan bruge COALESCE eller ISNULL . Førstnævnte er standard og returnerer den første NOT NULL argument (eller NULL hvis alle argumenter er NULL )

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

ISNULL er begrænset til kun 2 argumenter, men er mere effektiv i SQL Server, hvis den første værdi, der skal testes, er dyr at evaluere (f.eks. en underforespørgsel).

En potentiel "gotcha" med ISNULL at være opmærksom på er, at den returnerer datatypen for den første parameter, så hvis strengen, der skal erstattes, er længere end kolonnens datatype ville tillade, skal du bruge en cast.

F.eks.

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

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Ville returnere Unk

Men ISNULL(CAST(C as VARCHAR(7)),'Unknown') eller COALESCE ville begge fungere som ønsket.



  1. Hvordan forhindrer du SQL-injektion i LAMP-applikationer?

  2. Django:MySQL-syntaksfejl ved overførsel af parametre til rå SQL-forespørgsel

  3. Hvordan håndhæver man referentiel integritet på enkeltbordsarv?

  4. Verificerer MySQLi servercertifikater som standard, når du bruger SSL?