如果值等于连接了子字符串的另一个值,如何从表中选择一个值对?我有一个包含库扫描卡的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”的记录。
如果您尝试返回表中存在与该名称匹配的另一行但对于_1的所有行的列表,那么如下所示:
SELECT *
FROM YourTable A
WHERE EXISTS (
SELECT 1
FROM YourTable
WHERE REPLACE(Name,'_1','') = REPLACE(A.Name,'_1','')
AND Name <> A.Name
)