SELECT *
FROM dbo.tbh_table
WHERE TopicID IN (
SELECT value
FROM dbo.fn_split('19,',')
)
我必须更改上面的查询以执行如下所示的结果
SELECT *
FROM dbo.tbh_table
WHERE TopicID LIKE '%19,%'
我的topicID值类似于15,19,12,1 但是分裂会给出值15 19 12 1.因此我无法执行查询。
任何指导都会有所帮助
答案 0 :(得分:2)
假设fn_split
是一个表值函数(TVF
),返回TABLE (value INT)
,请使用:
SELECT t.*
FROM dbo.tbh_table t
CROSS APPLY
dbo.fn_split(TopicID) split
WHERE split.value = 19
答案 1 :(得分:0)
您可以将您的ID添加到表变量中,然后与表变量连接以确定TopicID是否在表变量中。
DECLARE @DesiredIDs TABLE (
DesiredID INT
)
INSERT INTO @DesiredIDs (DesiredID) Values (15)
INSERT INTO @DesiredIDs (DesiredID) Values (19)
INSERT INTO @DesiredIDs (DesiredID) Values (12)
INSERT INTO @DesiredIDs (DesiredID) Values (1)
select * from tbh_table t
left join @DesiredIDs d on d.DesiredID = t.TopicID
where d.DesiredID is not null
答案 2 :(得分:0)
如果我理解你的问题,你需要这样的东西:
SELECT *
FROM dbo.tbh_table
WHERE 19 IN (
SELECT value
FROM dbo.fn_split(TopicId,',')
)