我需要检查一个变量是否有值。
declare @name varchar(20)
set @name = (SELECT Product_Name
FROM tb_new_product_Name_id
WHERE Product_Name = @productName)
if (@name ) // here I need to check it
怎么做?感谢
答案 0 :(得分:5)
IF EXISTS(SELECT * FROM tb_new_product_Name_id
where Product_Name=@productName)
BEGIN
--Do something because a row existed with that name
END
如果您在tb_new_product_Name_id
确认了一行之后告诉了我们您计划做的事情,我们可以进一步协助简化您的代码。看起来你正在编写非常程序化的代码 - 首先我会做X,然后我会做Y,然后我会做Z等等.SQL擅长作为一种语言,你告诉它“做什么” - 对于你想要计算的整个数据集 - 而不是一步一步地按行方式“如何做”。
答案 1 :(得分:4)
IS NOT NULL
因为NULL表示没有值。
答案 2 :(得分:4)
试试这个
if (@name is null or @value = '') //it will indicate whether it contains a value or not
答案 3 :(得分:3)
您可以使用IS NULL
检查是否为null,如下所示;
DECLARE @name VARCHAR(20)
SET @name = (SELECT Product_Name FROM tb_new_product_Name_id where Product_Name=@productName)
IF @name IS NULL -- # Here is where you check it
BEGIN
-- # Handle null @name
END
ELSE
BEGIN
-- # @name has value
END
这是我怎么做的,但是如果你只为空检查声明@name
变量那么我会按Demien_The_Unbeliever建议。使用EXISTS
您甚至不需要@name
变量
答案 4 :(得分:1)
未启动的变量始终具有空值。您可以使用IS NOT NULL来检查..
答案 5 :(得分:0)
Recently encountered a situation where a field with no values was being checked with is null, is not null but was not working and on debugging found if no value then the field was getting a 0. So checking for value = '' or value = 0 or value is null, one of the three would check if its empty.