我在以下查詢中遇到了一些麻煩:
DECLARE
@Type TINYINT = NULL,
@ErrorDescription VARCHAR(MAX) = NULL
SELECT @Type
DECLARE @Script VARCHAR(MAX) = ''
SET @Script =
'DECLARE @Type TINYINT = ' CAST(@Type AS VARCHAR(10)) '
DECLARE @ErrorDescription VARCHAR(MAX) = ' CASE WHEN @Type = 1 THEN '''' @ErrorDescription '''' ELSE 'NULL' END
SELECT @Script
我的@Type將是三個值之一:Null、0、1
空 - 開始行程 0 - 成功行程 1 - 錯誤行程
對于 0,我得到結果:
| @型別 |
|---|
| 0 |
| @腳本 |
|---|
| 宣告 @Type TINYINT = 0 宣告 @ErrorDescription VARCHAR(MAX) = NULL |
對于NULL和 1 我NULL進入@Script.
| @腳本 |
|---|
| 空值 |
我需要和 1像 0 一樣NULL回傳結果。@Script
我檢查了 to 的轉換是否@Type是Varchar(10)問題,但它沒有效果。
我洗掉了撇號,但要么回傳錯誤,要么回傳相同的結果。
我改為@ErrorDescription“這是一個錯誤”并回傳了正確的結果 1 但不是NULL。
提前致謝!
我在互聯網上搜索了類似我的問題,但我看到了一個 jQuery 問題和詢問如何獲得 NULL 結果的問題。
uj5u.com熱心網友回復:
你可以互換NULL意義'unknown'
當您連接unknown到一個字串時,結果也是unknown(如果您將未知數量添加到已知數量,您現在有一個未知數量)。你需要使用IsNull()
嘗試
CAST(isnull(@Type,'0') AS VARCHAR(10))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414979.html
標籤:
上一篇:如何使用TSQL決議JSON
