早上好,
看起來這應該不難做到,但我的 TSQL 知識缺乏。如何解決位列的三個條件?這就是我所擁有的,但編譯器當然不喜歡 CASE 中的 OR。
要明確 a 在 All 我想要零列值和一列值的情況下。Null 將被排除。
我的表
Id Name LockedState Deleted
12 Doe, John 0 1
14 Doe, Johnny 0 1
15 Fischer, Julia 1 1
16 Hemsworth, Christopher 0 1
17 Getty, Kristyn 1 1
SELECT *
FROM MyTable
WHERE Deleted = @Deleted
AND LockState = CASE
WHEN @Assigned = 'ALL' THEN 0 OR 1
WHEN @Assigned = 'Assigned' THEN 1
WHEN @Assigned = 'UnAssigned' THEN 0
END
“全部”所需的輸出
12 Doe, John 0 1
14 Doe, Johnny 0 1
15 Fischer, Julia 1 1
16 Hemsworth, Christopher 0 1
17 Getty, Kristyn 1 1
“已分配”的所需輸出
15 Fischer, Julia 1 1
17 Getty, Kristyn 1 1
“未分配”的所需輸出
12 Doe, John 0 1
14 Doe, Johnny 0 1
16 Hemsworth, Christopher 0 1
uj5u.com熱心網友回復:
你可以使用這樣的東西:
SELECT *
FROM MyTable
WHERE Deleted = @Deleted
AND (@Assigned = 'Assigned' AND LockState = 1
OR @Assigned = 'UnAssigned' AND LockState = 0
OR @Assigned = 'ALL')
或像這樣:
SELECT *
FROM MyTable
WHERE Deleted = @Deleted
AND LockState = CASE
WHEN @Assigned = 'ALL' THEN LockState
WHEN @Assigned = 'Assigned' THEN 1
WHEN @Assigned = 'UnAssigned' THEN 0
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/478220.html
標籤:tsql
上一篇:系結不更新WinUI3
