我会建立一个“特殊标识符”表并填充它,例如
create table special_identifiers (
id int identity not null primary key clustered,
key varchar(10) not null unique
);
然后,您将在 SELECT 中执行删除这些特殊 ID 的操作
SELECT i.col1, i.col2,
CASE WHEN si.key IS NOT NULL then '' ELSE i.identifier END identifier
FROM Transactions i
LEFT JOIN special_identifiers si on si.key = i.identifier
如果您确实需要使用 LIKE,这可以很容易地扩展,例如 id 中的任何地方都应该删除它,例如
LEFT JOIN special_identifiers si on i.identifier LIKE '%' + si.key + '%'
尽管我只是将 % 添加到key
列本身以获得更大的灵活性。
最后,如果您根本无法持久化表格,您可以随时虚拟弥补,例如
SELECT i.col1, i.col2,
CASE WHEN si.key IS NOT NULL then '' ELSE i.identifier END identifier
FROM Transactions i
LEFT JOIN (select '1114' key UNION ALL
select '1160') si on si.key = i.identifier