ISNULL 不替换为 NULL
ISNULL not replacing with NULL
我有以下代码 -
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 的了解有限。我想 trim FAC_TELNO
并用 NULL
替换它,如果它是 0
我想这就是我想要的。抱歉造成混乱!
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
为什么使用 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
SQL 有两个与 null 相关的函数。
- IsNull,它有两个参数,一个可能为 null 的值和,以及一个替换值(如果原始值为 null)。 IsNull(null, 0) = 0
- NullIf,它接受两个参数并比较它们。如果比较 returns 为真,则返回 null,如果比较为假或空,则返回第一个值。 NullIf(null, 0) 为空,NullIf(0,0) 为空,NullIf(1, null) = 1.
您似乎想使用 NullIf(ltrim(rtrim(fac_telno)), 0) Phone_Num
。
我有以下代码 -
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 的了解有限。我想 trim FAC_TELNO
并用 NULL
替换它,如果它是 0
我想这就是我想要的。抱歉造成混乱!
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
为什么使用 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
SQL 有两个与 null 相关的函数。
- IsNull,它有两个参数,一个可能为 null 的值和,以及一个替换值(如果原始值为 null)。 IsNull(null, 0) = 0
- NullIf,它接受两个参数并比较它们。如果比较 returns 为真,则返回 null,如果比较为假或空,则返回第一个值。 NullIf(null, 0) 为空,NullIf(0,0) 为空,NullIf(1, null) = 1.
您似乎想使用 NullIf(ltrim(rtrim(fac_telno)), 0) Phone_Num
。