如何使用IF
語句來確定是否有多個參數有值,然後做一些工作,如果只有一個參數具有值,則執行其他工作。這是可能的與SQL如果?我只是試圖確定一個參數是否有值,或者多個參數是否有價值,因爲如果這樣的話我需要做一些完全不同的事情。我試圖做一個SQL語句,但它沒有正常工作。任何人都可以將我指向正確的方向嗎?SQL確定參數是否有值
1
A
回答
11
在SQL來檢查,如果參數具有值,你應該比較爲NULL值。 這裏有一個稍微過度設計例如:
Declare @Param1 int
Declare @param2 int = 3
IF (@Param1 is null AND @param2 is null)
BEGIN
PRINT 'Both params are null'
END
ELSE
BEGIN
IF (@Param1 is null)
PRINT 'param1 is null'
ELSE
IF (@Param2 is null)
PRINT 'param2 is null'
ELSE
PRINT 'Both params are set'
END
2
您可以檢查NULL值的參數值。但是,在我看來,在第一次臉紅之前,你應該檢查SQL參數之前的參數......
一旦你知道你需要做什麼,然後調用該SQL或存儲過程。
如果你這樣做,你可以簡化你的SQL,因爲你只傳遞你真正需要傳遞的參數。
其實我越想越想這樣做就越重要。您可以將NULL值用於其他事情。
簡單示例:獲取員工列表。員工處於活動狀態或非活動狀態 - 傳遞@IsActive布爾參數(如果true僅顯示活動員工,如果false僅顯示非活動員工,如果爲NULL則顯示所有員工)
1
在T-SQL中,您可以使用ISNULL函數。
1
下面是一個例子
if @param1 = 'this value' and @param2 = 'another value'
begin
-- do things here
end
else if @param1 = 'something else'
begin
-- do other work
end
else
-- do different things
0
通過@ Catch22好你的問題提供了答案。但特別是使用IF
s,並且sql
中的程序性常規應保持在最小程度。所以也許下面的解決方案使用case
聲明可能更適合你想要做的:
select Case When @Param1 is null and @Param2 is null Then ...-- both params null
When @Param1 is null then .... -- param1 is null
When @Param2 is null then .... -- param2 is null
Else .... -- both params set
End
相關問題
- 1. 確定SP參數在T-SQL中是否有缺省值
- 2. SQL確定參數是否有值不起作用
- 3. 如何確定PL/SQL參數值是否默認?
- 4. 是否可以確定函數是否有參數?
- 5. 如何確定SQL Server存儲過程參數是否具有默認值?
- 6. Python - 確定參數是否是整數
- 7. SQL Server確定值是否單調
- 8. 確定參數是否爲數字
- 9. 是否確定改變可選參數
- 10. SQL Server:是否有一個函數來確定所有指定的值是否相等?
- 11. 如何確定ASP.NET MVC是否找到了Action參數的值
- 12. 確定SQL Query是否具有命名參數的最佳方式
- 13. 確定值是否在數組
- 14. 確定數組中是否存在值
- 15. 如何確定具有不同參數值的URL是否「唯一」?
- 16. SQL查詢,以確定是否行組在特定的列具有特定值
- 17. LINQ to SQL - 確定我是否有陳舊的數據
- 18. 確定PipeStream是否有數據
- 19. 確定數據是否與R有關
- 20. 如何確定數組中是否還有未分配的值?
- 21. 如何確定數組中是否有重複值
- 22. 如何確定雙變量是否具有整數值?
- 23. 確定是否char值是字符
- 24. 是否有可能在t-sql中沒有參數的函數?
- 25. 確定參數/變量是否是(「is_a?」)lambda?
- 26. 確定是否類是與多個泛型參數
- 27. objective-c確定參數是否是對象
- 28. 確定SQL Server表是否爲只讀
- 29. 確定是否SQL UPDATE更改了列的值
- 30. Oracle SQL;確定值是否唯一或不在組中
我假設所有的參數都是各種類型的? – 2011-03-10 15:57:08