下面的代码可以将Like和IN组合起来。但是,在输出中需要一个列,其中包含用于类似内容的值:
SELECT file_id
FROM table1 as t
WHERE archival_date = '20180108'
WHERE EXISTS(SELECT *
FROM (VALUES ('%portfolo1filename%'),
('%portfolo2filename%'),
('%portfolo3filename%')) Vals(val)
WHERE filename LIKE '%' + val + '%') 作为输出,我需要:
____________________________
val file_ID
____________________________
portfolo1filename 2230
portfolo2filename 2240
portfolo3filename 3345 当前代码的输出:
______________
file_ID
______________
2230
2240
3345 注意:这里的val包含了我需要搜索的值列表(即文件名)
table1有以下条目:
filename file_ID archival_date
__________________________________________________________________
Broker1_portfolo1filename 2230 20180108
Broker1_portfolo2filename 2240 20180108
Broker2_portfolo3filename 3345 20180908
Broker2_portfolo2filename 1345 20180904
Broker3_portfolo1filename 3045 20180906
Broker2_portfolo2filename 3355 20180907
Broker2_portfolo3filename 7340 20180901发布于 2019-01-11 22:44:08
这可能会有帮助
select distinct file_id, val
from table1, VALUES ('%portfolo1filename%'),
('%portfolo2filename%'),
('%portfolo3filename%')) Vals(val)
where column1 like '%' + val + '%'您可以检查自己的工作代码
CREATE TABLE [dbo].[table1](
[id] [int] NULL,
[column1] [varchar](40) NULL
) ON [PRIMARY]
GO
insert into table1 values (2230, 'portfolo1filename');
insert into table1 values (2245, 'portfolo2filenamedasdas');
insert into table1 values (2250, 'porto');
select distinct id, val
from table1, (VALUES ('%portfolo1filename%'),
('%portfolo2filename%'),
('%portfolo3filename%')) Vals(val)
where column1 like '%' + val + '%'https://stackoverflow.com/questions/54154892
复制相似问题