24
if((isnull(@value,''))='')

我想知道上面的代码是否可以检查变量是空还是空。

4

9 回答 9

42

是的,该代码正是这样做的。

您还可以使用:

if (@value is null or @value = '')

编辑:

使用@value作为int值的附加信息,您需要:

if (@value is null)

一个int值永远不能包含该值''

于 2013-04-18T10:15:30.637 回答
11

使用这种方式更好

if LEN(ISNULL(@Value,''))=0              

此检查字段是emptyNULL

于 2014-05-12T06:11:37.437 回答
9

是的,您也可以使用COALESCE(@value,'')=''基于 ANSI SQL 标准的:

SELECT CASE WHEN COALESCE(@value,'')='' 
    THEN 'Yes, it is null or empty' ELSE 'No, not null or empty' 
    END AS IsNullOrEmpty

演示

于 2013-04-18T10:16:22.393 回答
1

是的,它有效。检查以下示例。假设@value 不是int

WITH CTE 
AS
(
    SELECT NULL AS test
    UNION
    SELECT '' AS test
    UNION
    SELECT '123' AS test
)

SELECT 
    CASE WHEN isnull(test,'')='' THEN 'empty' ELSE test END AS IS_EMPTY 
FROM CTE

结果 :

IS_EMPTY
--------
empty
empty
123
于 2013-04-18T10:21:59.203 回答
1

尝试这个:

ISNULL(IIF (ColunmValue!='',ColunmValue, 'no units exists') , 'no units exists') AS 'ColunmValueName' 
于 2014-09-24T04:52:44.677 回答
1
    IF (LEN(@value) > 0) PRINT 'Variable is not null and not empty'
于 2021-03-06T13:18:08.727 回答
0

你可以试试

<column_name> is null

where条款中。

于 2014-10-21T00:17:13.717 回答
0

你可以试试这个......

DECLARE @value Varchar(100)=NULL
IF(@value = '' OR @value IS NULL)
  BEGIN
    select 1
  END
ELSE
  BEGIN
    select 0
  END
于 2016-02-08T09:52:28.193 回答
0
declare @sexo as char(1)

select @sexo='F'

select * from pessoa

where isnull(Sexo,0) =isnull(@Sexo,0)
于 2020-04-13T10:27:23.537 回答