如何检测字段是否为空(不为空),然后选择另一个字段?
我真正需要的是IsBlank函数,其功能与IsNull相同,但带有空格。
REPLACE不适用于空白,COALESCE仅适用于NULLS。
答案 0 :(得分:86)
如何组合COALESCE和NULLIF。
SELECT COALESCE(NULLIF(SomeColumn,''), ReplacementColumn)
FROM SomeTable
答案 1 :(得分:15)
您可以为此
使用CASE
语句
select
Case WHEN Column1 = '' OR Column1 IS NULL OR LEN (TRIM (Column1)) = 0
THEN Column2
ELSE Column1 END as ColumnName
from TableName
答案 2 :(得分:4)
编辑:你不能在mssql中使用IF()
。
在SQL的SELECT部分中使用IF语句:
SELECT IF(field1 != '', field1, field2) AS myfield FROM ...
答案 3 :(得分:2)
你总是可以写一个isBlank()函数,比如
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