SQL Server客户端代码和客户端名称差异基于链接到不同客户端的第一个客户端代码数

时间:2016-08-26 15:19:43

标签: sql sql-server tsql sql-server-2012

我有一张包含客户端代码和客户端名称的表。之前使用的客户代码例如是 M 1003993。它们已更新,现在客户端代码以 7 1003993开头创建。链接到这些客户端代码(M,7)的客户端名称是不同的客户端名称,因此我无法根据相同的客户端名称过滤客户端代码中的差异。

我需要的是如何通过链接到客户端名称( M 1003993)来提取1个DISTINCT客户端代码,并将其连接到具有自己的DISTINCT客户端名称的类似DISTINCT客户端代码( 7 1003993)这意味着我需要一个代码参考列表,其中客户代码的第一个字母或数字是不同的,而其余的7个数字是相同的?所有这些都在1个表内完成。

我的猜测是,同一个表应该重新连接到自身,但是当我们有( 7 1003993)和( M 1003993)时如何创建此交叉引用)具有不同客户名称的代码。

下面的图片显示了SELECT,也许它有助于解释我的意思

enter image description here

我需要识别代码M和7的客户名称,因此71003993(客户端名称1)= M1003993(客户端名称2),这是260,000条记录

1 个答案:

答案 0 :(得分:1)

如果客户端代码的最后7个字母相同,请使用以下代码。

SELECT *
FROM yourTable y1
  JOIN yourTable y2 On RIGHT(y1.clientcode,7)= RIGHT(y2.clientcode,7)
 WHERE y1.clientcode like 'M%' AND y2.clientcode like '7%'