[英]SQL Server 2016 - Get NULL values from a table using a Stored Procedure
我正在嘗試使用一個名為@ShowCompaniesWithoutClients
GetCompanies
參數來顯示所有公司(來自名為Company
的表),其中Client
列是NULL
或空( ''
)。
目前我找到的解決方案是制作一個IF/ELSE
語句,其中驗證IF @ShowCompaniesWithoutClients=1
我命令
SELECT *
FROM [Company]
WHERE [Client] IS NULL OR [Client] = ''
否則,select 所有列(無限制)。
誰能幫我重構這個解決方案,用我不需要SELECT
語句兩次的解決方案替換它?
免責聲明:這只是一個實際應用的例子,我有大約 20 列和更多參數。
所以@ShowCompaniesWithoutClients as bit
可以有 3 個可能的值,0、1 和 null。 0 和 1 很清楚,但是當您通過 @ShowCompaniesWithoutClients = null 時,意味着所有內容都應該返回,您可以這樣做:
SELECT *
FROM [Company]
WHERE (ISNULL([Client],'') = '' and @ShowCompaniesWithoutClients = 1)
OR (ISNULL([Client],'') <> '' and @ShowCompaniesWithoutClients = 0)
OR (@ShowCompaniesWithoutClients IS NULL)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.