Comment peut-on détecter si un champ est vide (et non nul) puis sélectionner un autre champ s'il l'est?
Ce dont j'ai vraiment besoin, c'est d'une fonction IsBlank qui fonctionne de la même manière que IsNull mais avec des blancs.
REPLACE ne fonctionne pas avec les blancs, COALESCE ne fonctionne qu'avec NULLS.
Que diriez-vous de combiner COALESCE et NULLIF.
SELECT COALESCE(NULLIF(SomeColumn,''), ReplacementColumn)
FROM SomeTable
Vous pouvez utiliser une instruction CASE
pour cela
select
Case WHEN Column1 = '' OR Column1 IS NULL OR LEN (TRIM (Column1)) = 0
THEN Column2
ELSE Column1 END as ColumnName
from TableName
EDIT: Vous ne pouvez pas utiliser IF()
dans mssql.
Utilisez une instruction IF dans la partie SELECT de votre SQL:
SELECT IF(field1 != '', field1, field2) AS myfield FROM ...
Vous pouvez toujours écrire une fonction isBlank (), quelque chose comme
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION isBlank
(
@CheckExpression varchar, @ReplacementExpression varchar
)
RETURNS varchar
AS
BEGIN
IF @CheckExpression IS NOT NULL
BEGIN
IF @CheckExpression='' or LEN(@CheckExpression) = 0
RETURN @ReplacementExpression
ELSE
RETURN @CheckExpression
END
RETURN @ReplacementExpression
END
GO