And*_*tin 4 t-sql sql-server case
我希望有人可以向我解释以下查询,因为我不熟悉语法:
@[user1] int,
@[user2] varchar(10)
delete
from [table name]
where [id] in (select [id]
from [a diff table name]
where [user1] = @[user1])
and (case
when [user2] = 'some string' then 1
when [table field] = @user2 then 1
else 0
end) = 1
and [other field] = 0
and [other field] = 0
and [other field]= 0
Run Code Online (Sandbox Code Playgroud)
首先,我显然已经更改了所有变量/表名称。如果有什么不清楚的,请见谅。我知道第一部分是一个删除语句,它使用 in 语句。没关系。我还得到了最后一部分,多个 AND 语句向 WHERE 子句添加了条件。
这是我正在努力解决的案例陈述。我有两个问题。
ELSE 0 表示如果 WHEN 语句都不匹配,则 CASE 语句将返回 0。
如果将 End = 1 理解为
WHERE (CASE .... END) = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6967 次 |
| 最近记录: |