是否有與COALESCE
類似的函數,但值不是NULL
?對於非NULL值的ISNULL/COALESCE對象
如果它返回字符串文字N/A
,我需要用另一個值替換標量值函數的返回值。如果將返回NULL
我可以使用:
SELECT COALESCE(dbo.GetFirstSsnInFromSsnOut(RMA.IMEI), RMA.IMEI) AS [IMEI to credit]
, OtherColumns
FROM dbo.TableName
但由於它返回N/A
這不起作用。我還可以使用:
SELECT CASE WHEN dbo.GetFirstSsnInFromSsnOut(RMA.IMEI)='N/A'
THEN RMA.IMEI
ELSE dbo.GetFirstSsnInFromSsnOut(RMA.IMEI)
END AS [IMEI To Credit]
, OtherColumns
FROM dbo.TableName
但由於它需要每個記錄兩次執行的功能,這將是低效的。
請注意,此查詢是在一個表值函數。
但是你不能只修改函數'GetFirstSsnInFromSsnOut'本身返回NULL,而不是N/A? –
@StephenByrne:這會導致其他問題/工作。所以我首先問是否有辦法在沒有「突變」的情況下解決這個問題。該方法已經在一些excel插件中使用,我將不得不修改。 –
如何創建另一個函數來封裝'GetFirstSsnInFromSsnOut'並將N/A更改爲'NULL'?這樣做,你可以使用'COALESCE',並且仍然只有一個調用'GetFirstSsnInFromSsnOut' – neutrino