62,272
社区成员
发帖
与我相关
我的任务
分享SELECT TOP (6) *
FROM V_MT_ProductsInfo
WHERE IsShow>0
AND Name LIKE
(SELECT '%'+convert(varchar(200), tagName)+'%'
FROM MT_News_Tag
WHERE NewsId = 732786
AND tableName = 'News_Report' )
ORDER BY Sort DESC ,ID DESC (SELECT '%'+convert(varchar(200), tagName)+'%'
FROM MT_News_Tag
WHERE NewsId = 732786
AND tableName = 'News_Report' )
SELECT TOP (6) a.*
FROM V_MT_ProductsInfo a
JOIN
(
SELECT tagName AS NAME
FROM MT_News_Tag
WHERE NewsId = 732786
AND tableName = 'News_Report'
)b ON charindex(b.NAME,a.NAME)>0
WHERE a.IsShow>0
ORDER BY a.Sort DESC ,a.ID DESC create proc myTest
as
begin
declare @str nvarchar(1000)='select * from V_MT_ProductsInfo where 1=1 '
declare @strCondition nvarchar(1000)=''
set @strCondition=(select ' or name like '''+convert(varchar(200), tagName)+''' ' from MT_News_Tag where NewsId = 732786
AND tableName = 'News_Report' for xml path(''))
exec (@str+@strCondition)
end
C# 就是一般的DataTable dt=GetDT("exec myTest")
大致这样SELECT TOP (6) *
FROM V_MT_ProductsInfo
WHERE IsShow>0
AND exists
(SELECT 1
FROM MT_News_Tag
WHERE NewsId = 732786
AND tableName = 'News_Report'
And charindex(tagName,Name)>0 )
ORDER BY Sort DESC ,ID DESCSELECT TOP (6) *
FROM V_MT_ProductsInfo
WHERE IsShow>0
AND charindex(
(SELECT tagName
FROM MT_News_Tag
WHERE NewsId = 732786
AND tableName = 'News_Report' ),Name)>0
也是不行,依然报那个错误