SQL Server Выберите пары значений из таблицы, если пара значений существует (как определено подстрокой)
Как я могу выбрать пару значений из моей таблицы, если значение равно другому значению с конкатенацией подстроки? У меня есть таблица 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 ответ
Решение
Если вы пытаетесь вернуть список всех строк, где существует другая строка в таблице, которая соответствует имени, но для _1, как насчет чего-то вроде этого:
SELECT *
FROM YourTable A
WHERE EXISTS (
SELECT 1
FROM YourTable
WHERE REPLACE(Name,'_1','') = REPLACE(A.Name,'_1','')
AND Name <> A.Name
)