【发布时间】:2019-01-11 22:29:29
【问题描述】:
下面的代码可以结合 Like 和 IN。但我需要在输出中有一列包含我用于 Like 的值:
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
【问题讨论】:
-
数据库是什么?
-
请提供样本数据和预期结果
-
这是作业题吗?
-
@KeithJohnHutchison:几乎没有,我只是想根据文件名匹配模式填充文件名 ID
-
@TheImpaler: table1 是数据库
标签: sql sql-server string tsql sql-like