我有以下代码 -
SELECT
BR_CSNO AS [PARTY_KEY],
'W' AS [PHONE_TYPE_CD],
ISNULL( LTRIM( RTRIM( FAC_TELNO ) ), '0' ) AS [PHONE_NUM],
NULL AS [UPDATE_DT],
GETDATE() [BATCH_DT]
FROM
BASE B
我得到以下结果 -
它不会取代NULL
。为什么?是因为错误放置还是使用了LTRIM(RTRIM())
?
修改
很抱歉我对SQL知之甚少。我想修剪FAC_TELNO
并将其替换为NULL
,如果它是0
答案 0 :(得分:1)
我认为这就是我想要的。很抱歉造成混乱!
SELECT
BR_CSNO AS [PARTY_KEY],
'W' AS [PHONE_TYPE_CD],
NULLIF( LTRIM( RTRIM( FAC_TELNO ) ), '0' ) AS [PHONE_NUM],
NULL AS [UPDATE_DT],
GETDATE() [BATCH_DT]
FROM
BASE B
答案 1 :(得分:1)
SQL有两个与空值相关的函数。
您似乎想要使用NullIf(ltrim(rtrim(fac_telno)), 0) Phone_Num
。
答案 2 :(得分:0)
为什么使用LTRIm和RTRIM使用TRIM它会对我有用
SELECT
BR_CSNO AS [PARTY_KEY],
'W' AS [PHONE_TYPE_CD],
ISNULL( Trim( FAC_TELNO ), '0' ) AS [PHONE_NUM],
'' AS [UPDATE_DT],
GETDATE() [BATCH_DT]
FROM
BASE B