方式一:使用IIF函數實現雙目運算符
傳入參數
IIF傳入三個參數:
第一個參數:一個條件表達式
第二個參數:當參數一的條件表達式判定爲TRUE時,IIF返回第二個參數的內容
第三個參數:當參數一的條件表達式判定爲FALSE時,IIF返回第三個參數的內容
返回值
IIF會根據第一個參數的判定結果,返回第二參數的內容(當判定結果爲TRUE時)或第三參數的內容(當判定結果爲FALSE時)
函數功能說明
相當於許多高級編程語言中的三目運算符,當參數一的條件表達式判定爲TRUE時IIF返回第二個參數的值;當參數一的條件表達式判定爲FALSE時IIF返回第三個參數的值。
提醒
由於IIF的功能,可以想到,一般調用IIF時,第二個參數與第三個參數應使用同一數據類型
方式二:使用CASE WHEN THEN () ELSE () END 實現雙目和多目運算符
語句說明
--強調:條件組裏可以是一個單一的條件語句,也可以是多個條件語句通過OR、AND關鍵字連接的多個條件的組合
CASE WHEN (條件組一) THEN (結果一)
WHEN (條件組二) THEN (結果二)
WHEN (條件組三) THEN (結果三)
ELSE (結果四) END
--低級錯誤警告:這裏的關鍵字是CASE,而不是CAST
代碼示例
--定義三個變量
DECLARE @InputValue int
DECLARE @OutputValue1 nvarchar(8)
DECLARE @OutputValue2 nvarchar(8)
--設置傳入參數
SET @InputValue = 7
--利用語句對結果1進行賦值
SET @OutputValue1 = CASE WHEN @InputValue = 0 THEN '天'
WHEN @InputValue = 1 THEN '一'
WHEN @InputValue = 2 THEN '二'
WHEN @InputValue = 3 THEN '三'
WHEN @InputValue = 4 THEN '四'
WHEN @InputValue = 5 THEN '五'
WHEN @InputValue = 6 THEN '六'
ELSE '錯誤:輸入值溢出' END
--設置傳入參數
SET @InputValue = 0
--利用語句對結果2進行賦值
SET @OutputValue2 = CASE WHEN @InputValue = 0 THEN '天'
WHEN @InputValue = 1 THEN '一'
WHEN @InputValue = 2 THEN '二'
WHEN @InputValue = 3 THEN '三'
WHEN @InputValue = 4 THEN '四'
WHEN @InputValue = 5 THEN '五'
WHEN @InputValue = 6 THEN '六'
ELSE '錯誤:輸入值溢出' END
--顯示結果1內容
SELECT [星期] = @OutputValue1
UNION --並集
--顯示結果2內容
SELECT [星期] = @OutputValue2
代碼運行結果: