我正在尝试将excel中的公式复制到SQL中,我有一个带地址的客户ID代码列表。
我已经连接了邮政编码和姓氏,并按升序排序。
我想检查之前的文本字符串是否等于当前文本字符串。
如果是,那么我想将之前的ID号放在名为New ID的新字段中(在当前Record上),并将旧代码放在名为Deleted codes的新字段中。
基本上我们有重复的地址,我们想要合并到一个客户,但不删除任何数据。
新代码公式= IF(M20 = M19,O19,A20) 删除的代码公式= IF(N20 = O20,“”,N20)
这可以在SQL中做到吗?
答案 0 :(得分:1)
;WITH MyCTE AS
(
SELECT *,
ROW_NUMBER()OVER (ORDER BY TextString) AS rn
FROM Table1
)
SELECT T1.TextString AS T1String,
T2.TextString AS T2String,
CASE WHEN T1.TextString = T2.TextString THEN T1.ID ELSE '' END AS NewCode,
CASE WHEN T1.TextString = T2.TextString THEN T2.ID ELSE '' END AS OldCode
FROM MyCTE T1
LEFT JOIN MyCTE T2
ON T1.rn = T2.rn+1
<强> SQL Fiddle Demo 强>