Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查sql server 2005中的列中是否存在值_Sql_Sql Server 2005_Tsql_Loops - Fatal编程技术网

检查sql server 2005中的列中是否存在值

检查sql server 2005中的列中是否存在值,sql,sql-server-2005,tsql,loops,Sql,Sql Server 2005,Tsql,Loops,伙计们 我有一个名为Is_Deleted的列的表,我的查询是 select Is_Deleted from Stock where Stock.Mat_Id=1 现在我必须写一个条件来检查所有的值是否都是1,否则我必须终止我的循环。。如何做到这一点?任何建议…这应该符合您的要求 select exists(select 1 from Stock where Mat_Id = 1 and (is_deleted is null or is_deleted <> 1)) IF E

伙计们

我有一个名为Is_Deleted的列的表,我的查询是

select Is_Deleted from Stock where Stock.Mat_Id=1

现在我必须写一个条件来检查所有的值是否都是1,否则我必须终止我的循环。。如何做到这一点?任何建议…

这应该符合您的要求

select exists(select 1 from Stock where Mat_Id = 1 and
  (is_deleted is null or is_deleted <> 1))
IF EXISTS(SELECT 1 FROM (select DISTINCT Is_Deleted from Stock where Stock.Mat_Id=1) a WHERE Is_Deleted <> 1)
BEGIN
 -- Terminate the loop
END
ELSE
BEGIN
 -- Perform action
END

一个简单的存在就是你所需要的

IF EXISTS (SELECT * FROM Stock.Is_Deleted = 0 AND Stock.Mat_Id = 1)
...
如果您正在通过不同的Mat_ID循环

...
--Get first @Mat_Id
WHILE @Mat_Id IS NOT NULL
BEGIN
    IF EXISTS (SELECT * FROM Stock.Is_Deleted = 0 AND Stock.Mat_Id = @Mat_Id)
    BEGIN
       ...
    END
    SET @Mat_Id = NULL
    --Get next @Mat_Id
END
...

@jspcal它显示错误。。。在@jspcal附近的预期条件上下文中指定的非布尔类型表达式您编辑的查询在“limit”附近给出了不正确的语法。@Dave perfect有效。。。。看看我的另一个问题,试着给出一个答案@gbn你的答案对我也有用。。。这是我的错让dave来回答。。。保持联系..@gbn如果您愿意,您可以提供您的邮件id,以便我可以通过邮件与您联系。。。