我需要生成一個報告,用戶可以選擇單選按鈕中的所有問題,已解決問題或已解決的問題。在我看來,我有一個isClosed位列。如果我沒有在所有問題單選框,我正做的事:SQL Where子句基於另一個參數的條件賦值
SELECT *
FROM MyView
WHERE isClosed = @ViewClosedRecords
但是我需要刪除isClosed = @ViewClosedRecords
條件時@ViewAllRecords = true
。我將如何做到這一點?
我需要生成一個報告,用戶可以選擇單選按鈕中的所有問題,已解決問題或已解決的問題。在我看來,我有一個isClosed位列。如果我沒有在所有問題單選框,我正做的事:SQL Where子句基於另一個參數的條件賦值
SELECT *
FROM MyView
WHERE isClosed = @ViewClosedRecords
但是我需要刪除isClosed = @ViewClosedRecords
條件時@ViewAllRecords = true
。我將如何做到這一點?
SELECT *
FROM MyView
WHERE @ViewAllRecords OR isClosed = @ViewClosedRecords
善良,
丹
我嘗試這個和查詢生成器說:「無效的列名稱真正」,然後它將其更改爲「(isClosed = @ViewClosedRecords)或 (ProjectID = @RequestedProjectID)AND (true = @ViewAllRecords)'但仍然錯誤。 – jamone 2010-04-09 13:53:19
編輯一點..再試一次 – 2010-04-09 13:55:34
select *
from MyView
WHERE isClosed = @ViewClosedRecords
OR @ViewAllRecords
並設置@ViewAllRecords
參數爲true,當用戶在單選按鈕選擇 「所有問題」。
WHERE
(@ViewAllRecords = false AND isClosed = @ViewClosedRecords)
OR
(@ViewAllRecords = true)
以下將給你帶isClosed = @ViewClosedRecords
的所有行。如果@ViewAllRecords = true
那麼它將返回所有行並忽略isClosed
。
SELECT *
FROM MyView
WHERE isClosed = @ViewClosedRecords
OR @ViewAllRecords = true
由於某種原因,它不等於真正的布爾值,但是在我將它設置爲一個字符串並且確實='true'的情況下,它可以工作。 – jamone 2010-04-09 14:02:01
WHERE (@ViewAllRecords <> true AND isClosed = @ViewClosedRecords)
嫌頭。顯然是那些日子之一。 – jamone 2010-04-09 13:33:46