sql - 如何在if语句中进行选择

标签 sql sql-server t-sql

我想测试两个 TaskChangeLogID,其中 ID“28”的 NewRollback 为 0,ID“31”的 NewRollback 为 1。

我想确保根据调用的 ID,它选择正确的 NewRollback 编号。我在新窗口中应用下面的代码时遇到错误,因此只需要帮助调整它并学习如何在将来测试此类内容。我仅在 IF 语句行中收到错误。

SELECT isnull(NewRollback, 0) FROM Core.TaskChangeLog
WHERE TaskChangeLogID =  28

SELECT isnull(NewRollback, 0) FROM Core.TaskChangeLog
WHERE TaskChangeLogID =  31

IF (NewRollback = 1)

Select * from Core.TaskChangeLog where NewRollback = 1

ELSE
    BEGIN

    Select * from Core.TaskChangeLog where NewRollback = 0

    END

最佳答案

您不需要 IF 条件来执行此操作,只需 AND/OR 逻辑即可完成此工作

试试这个方法

Select * from Core.TaskChangeLog 
where (NewRollback = 1 and askChangeLogID =  28)
   OR (NewRollback = 0 and askChangeLogID =  31)

要根据选择结果执行某些操作,请尝试此操作

IF EXISTS (Select * from Core.TaskChangeLog 
    where NewRollback = 1 and askChangeLogID =  28) -- Replace with your ID
BEGIN 
 --some action
END
IF EXISTS (Select * from Core.TaskChangeLog 
    where NewRollback = 0 and askChangeLogID =  28)
BEGIN
 --some action
END

关于sql - 如何在if语句中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34547437/

相关文章:

javascript - 使用 Swagger 和 Node.js 以及 SQL Server 作为数据库的 REST API

sql - 点和多边形之间的 STDistance 始终返回 0,即使它们相距数英里

sql - 如何在 SQL Server 中将多行转换为列?

sql-server - 如何按日期容限对记录进行分组?

php - SQL/PDO 查询优化

sql - 连接到全新安装的 SQL Server

sql - 检查父行是否有任何子行的简单 SQL

mysql - JOIN 不带 WHERE 子句的同一语句

sql-server - 使用变量运行动态 SQL 时的单引号数量

sql - 分组,同时将上一行值添加到下一行