SQL Server如果值对存在,则从表中选择值对(由子字符串定义)

问题描述 投票:0回答:1

如果值等于连接了子字符串的另一个值,如何从表中选择一个值对?我有一个包含库扫描卡的SQL Server表,这里显示了一个模型。

Name            Status         Activation_Date
John_Doe        Active         1-1-2015
Jane_Smith      Inactive       2-2-2014
Jane_Smith_1    Active         1-2-2015

在该表中,当顾客丢失他/她的卡时,旧卡被停用,并且创建新卡。名称是主键,因此,由于使用了先前的键,因此添加了“_1”后缀。

我希望我的结果能够显示“Jane_Smith”和“Jane_Smith_1”的记录。

sql-server substring where
1个回答
0
投票

如果您尝试返回表中存在与该名称匹配的另一行但对于_1的所有行的列表,那么如下所示:

SELECT *
FROM YourTable A
WHERE EXISTS (
    SELECT 1
    FROM YourTable
    WHERE REPLACE(Name,'_1','') = REPLACE(A.Name,'_1','')
      AND Name <> A.Name
)
© www.soinside.com 2019 - 2024. All rights reserved.