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
을 변경할 수없는 경우
을하지만 당신은 단지 기능을 수정할 수 없습니다'GetFirstSsnInFromSsnOut' 자체는 NULL 대신 N에게/A를 반환? –
@StephenByrne : 그건 다른 문제/작업을 일으킬 것입니다. 그래서 "깨는 변화"없이 이것을 해결할 수있는 방법이 있는지 먼저 질문했습니다. 이 방법은 이미 수정해야하는 일부 Excel Addins에서 이미 사용되었습니다. –
'GetFirstSsnInFromSsnOut'을 래핑하고 N/A를'NULL'로 변경하는 또 다른 함수를 만드는 것은 어떨까요? 그렇게하면, 당신은'COALESCE'를 사용할 수 있고'GetFirstSsnInFromSsnOut'에 한 번만 호출 할 수 있습니다. – neutrino