簡體   English   中英

帶有NULL的T-SQL串聯問題

[英]T-SQL concatenation issue with NULLS

我正在嘗試進行簡單的串聯,但是在某處失敗! 我只想在其他兩個變量不為空時在電子郵件中顯示注釋。 即使一個變量包含數據,它也應顯示注釋。 下面是我的代碼。

SET @Note = CASE 
               WHEN @tableHTML_AssignedTo IS NOT NULL OR @tableHTML_SubmittedBy IS NOT NULL
                  THEN 'Note: The tickets with the following statuses are not listed in this alert: Closed,Rejected' 
                  ELSE NULL
            END

SET @ComposeBody = ISNULL(@tableHTML_AssignedTo, '') +
                   ISNULL(@tableHTML_SubmittedBy, '') +
                   ISNULL(@Note, '') 

我知道這是簡單的代碼,但對我做錯的事情我並不明顯。 但是用我的代碼,如果兩個表都為Notes都為空,則會發送一封空電子郵件。 如果刪除Notes,則不會發送電子郵件,但我想在電子郵件中添加Notes

注意:我正在光標內執行此代碼以遞歸發送電子郵件

我會這樣-看起來更簡單。

這里的技巧是了解null如何與concat一起使用。 具有null的任何concat為null。 因此,如果Assigned或Submitted為null,則COALESCE的第一個參數將為null。 下一步每個步驟都會檢查其他兩種情況。

SET @Note = 'Note: The tickets with the following statuses are not listed in this alert: Closed,Rejected'; 

SET @ComposeBody = COALESCE(
     @tableHTML_AssignedTo+@tableHTML_SubmittedBy+@Note,  -- Selected if both non null
     @tableHTML_AssignedTo+@Note,                         -- Selected if SubmittedBy null
     @tableHTML_SubmittedBy+@Note)                        -- Selected if AssignedTo null
                       -- Both are null, set body to null.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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