当我运行这段代码时,字段 Old_Address
和 New_Address
含有 1234 Address
. 我想改变结果 1234 Address
到一个空字符串。有什么简单的方法可以做到这一点?
INSERT
INTO OPT_INT.mgnNACHG_Results
(
BRANCH_CD,
ACCOUNT_CD,
RR_CD,
ALT_BRANCH_CD,
[OldAddress],
[NewAddress],
[AddressUpdate],
[OldName],
[NewName],
[NameUpdate]
)
SELECT A.BRANCH_CD,
A.ACCOUNT_CD,
A.RR_CD,
A.ALT_BRANCH_CD,
LTRIM(RTRIM(ISNULL(B.LINE4, '')))
+ LTRIM(RTRIM(ISNULL(B.LINE5, '')))
+ LTRIM(RTRIM(ISNULL(B.LINE6, ''))) AS 'Old_Address',
LTRIM(RTRIM(ISNULL(A.LINE4, '')))
+ LTRIM(RTRIM(ISNULL(A.LINE5, '')))
+LTRIM(RTRIM(ISNULL(A.LINE6, ''))) AS 'New_Address',
CASE
WHEN (LTRIM(RTRIM(ISNULL(B.LINE4, ''))) <> LTRIM(RTRIM(ISNULL(A.LINE4, ''))))
OR (LTRIM(RTRIM(ISNULL(B.LINE5,''))) <> LTRIM(RTRIM(ISNULL(A.LINE5, ''))))
OR (LTRIM(RTRIM(ISNULL(B.LINE6, ''))) <> LTRIM(RTRIM(ISNULL(A.LINE6, ''))))
THEN 'Address Change'
ELSE ''
END as 'Address_Update',
LTRIM(RTRIM(ISNULL(B.LINE1, '')))
+ LTRIM(RTRIM(ISNULL(B.LINE2, '')))
+ LTRIM(RTRIM(ISNULL(B.LINE3, ''))) AS 'Client_Old_Name',
LTRIM(RTRIM(ISNULL(A.LINE1, '')))
+ LTRIM(RTRIM(ISNULL(A.LINE2, '')))
+ LTRIM(RTRIM(ISNULL(A.LINE3, ''))) AS 'Client_New_Name',
CASE
WHEN (LTRIM(RTRIM(ISNULL(B.LINE1,''))) <> LTRIM(RTRIM(ISNULL(A.LINE1, ''))))
OR (LTRIM(RTRIM(ISNULL(B.LINE2, ''))) <> LTRIM(RTRIM(ISNULL(A.LINE2, ''))))
OR (LTRIM(RTRIM(ISNULL(B.LINE3, ''))) <> LTRIM(RTRIM(ISNULL(A.LINE3, ''))))
THEN 'Title Change'
ELSE ''
END AS 'Client_Name_Update'
FROM #NEW A
INNER JOIN #OLD B
ON A.BRANCH_CD = B.BRANCH_CD
AND A.ACCOUNT_CD = B.ACCOUNT_CD
WHERE (A.[LINE1] <> B.[LINE1])
OR (A.[LINE2] <> B.[LINE2])
OR (A.[LINE3] <> B.[LINE3])
OR (A.[LINE4] <> B.[LINE4])
OR (A.[LINE5] <> B.[LINE5])
OR (A.[LINE6] <> B.[LINE6])
看看这是否有帮助(假设要求是[Old_Address]=[New_Address])。
INSERT INTO OPT_INT.mgnNACHG_Results (BRANCH_CD,ACCOUNT_CD,RR_CD,ALT_BRANCH_CD,[OldAddress],[NewAddress],[AddressUpdate],[OldName],[NewName],[NameUpdate])
Select BRANCH_CD, ACCOUNT_CD, ACCOUNT_CD, ALT_BRANCH_CD,
Case When [Old_Address] = [New_Address] then ' blank or 1234 Address as you need ' Else [Old_Address] End as [Old_Address],
Case When [Old_Address] = [New_Address] then ' blank or 1234 Address as you need ' Else [New_Address] End as [New_Address],
[Address_Update], [Client_Old_Name], [Client_New_Name], [Client_Name_Update]
From
(
SELECT A.BRANCH_CD,A.ACCOUNT_CD,A.RR_CD,A.ALT_BRANCH_CD
,LTRIM(RTRIM(ISNULL(B.LINE4,'')))+LTRIM(RTRIM(ISNULL(B.LINE5,'')))+LTRIM(RTRIM(ISNULL(B.LINE6,''))) AS [Old_Address]
,LTRIM(RTRIM(ISNULL(A.LINE4,'')))+LTRIM(RTRIM(ISNULL(A.LINE5,'')))+LTRIM(RTRIM(ISNULL(A.LINE6,''))) AS [New_Address]
,CASE WHEN (LTRIM(RTRIM(ISNULL(B.LINE4,'')))<>LTRIM(RTRIM(ISNULL(A.LINE4,'')))) OR (LTRIM(RTRIM(ISNULL(B.LINE5,'')))<>LTRIM(RTRIM(ISNULL(A.LINE5,'')))) OR (LTRIM(RTRIM(ISNULL(B.LINE6,'')))<>LTRIM(RTRIM(ISNULL(A.LINE6,'')))) THEN 'Address Change' ELSE '' END as [Address_Update]
,LTRIM(RTRIM(ISNULL(B.LINE1,'')))+LTRIM(RTRIM(ISNULL(B.LINE2,'')))+LTRIM(RTRIM(ISNULL(B.LINE3,''))) AS [Client_Old_Name]
,LTRIM(RTRIM(ISNULL(A.LINE1,'')))+LTRIM(RTRIM(ISNULL(A.LINE2,'')))+LTRIM(RTRIM(ISNULL(A.LINE3,''))) AS [Client_New_Name]
,CASE WHEN (LTRIM(RTRIM(ISNULL(B.LINE1,'')))<>LTRIM(RTRIM(ISNULL(A.LINE1,'')))) OR (LTRIM(RTRIM(ISNULL(B.LINE2,'')))<>LTRIM(RTRIM(ISNULL(A.LINE2,'')))) OR (LTRIM(RTRIM(ISNULL(B.LINE3,'')))<>LTRIM(RTRIM(ISNULL(A.LINE3,'')))) THEN 'Title Change' ELSE '' END AS [Client_Name_Update]
FROM #NEW A
INNER JOIN #OLD B ON A.BRANCH_CD=B.BRANCH_CD AND A.ACCOUNT_CD=B.ACCOUNT_CD
WHERE (A.[LINE1]<>B.[LINE1]) OR (A.[LINE2]<>B.[LINE2]) OR (A.[LINE3]<>B.[LINE3]) OR (A.[LINE4]<>B.[LINE4]) OR (A.[LINE5]<>B.[LINE5]) OR (A.[LINE6]<>B.[LINE6])
) AS Q
如果您需要检查这2个数据字段是否包含一个特定的文本,您可以使用
Case When [Old_Address] = [New_Address] and [Old_Address] = '1234 Address' then ' blank or 1234 Address as you need ' Else [Old_Address] End as [Old_Address],