SELECT * FROM SYS.COLUMNS WHERE
NAME NOT IN (SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'XXXX'
AND PATINDEX('%' + COLUMN_NAME + '%', 'ABC;XYZ') <> 0);
在表格XXXX
中,有XY
,AB
,ABC
,XYZ
等列。现在,我只想排除XYZ
和ABC
列,并使用AB
保留XY
和PATINDEX
列。我无法做到,因为只有第一列被排除在外。如果我从%
删除了PATINDEX
开头,那么XYZ
和XY
都将被删除。我该怎么解决这个问题呢。
答案 0 :(得分:1)
您想要 CHARINDEX ,而不是PATINDEX。
SELECT * FROM SYS.COLUMNS
WHERE NAME NOT IN (
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'XXXX'
AND CHARINDEX(COLUMN_NAME + ';', 'ABC;XYZ;') > 0
);