簡體   English   中英

SQL 服務器 2016 - 使用存儲過程從表中獲取 NULL 值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM