sqlServer里的Like后跟多个不同条件的查询咋办。。。

发布于 2022-09-05 04:19:34 字数 441 浏览 10 评论 0

--如下sql语句、模糊查询Tree时从一个符合条件的集合中查询

select *  from [3d_Customer_Cymb]  where Cus_Id=101 and Mark=0

      and Tree like 

      (select '%'+cast(Tree as nvarchar(max))+'%' from [3d_Customer_Cymb] 
      
      where Id in 

           ( select Id from [3d_Customer_Cymb] where Mark=0  and  Cus_Id=101 and 
             ParentId=0 )

       and ParentId=0 ) 

order by Sort asc,Id asc

--like后面查询的集合就报错了、咋办

--或者有其他的办法么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

末が日狂欢 2022-09-12 04:19:34
--本人已解决、但是是靠外部代码拼接实现的、

--大体思想是先把那个需要 like 出来的条件集合用 DataTable 存入、然后循环输出并拼接条件

DataTable tab= DbClass.GetList(" select '%'+cast(Tree as nvarchar(max))+'%' as newTree from [3d_Customer_Cymb] where Id in ( select Id from [3d_Customer_Cymb] where Mark=0  and  Cus_Id=101 and ParentId=0 )and ParentId=0 ");

foreach( DataRow item in tab )
{
strWhere = " or Tree Like item["newTree"] ";
}

--还有一个问题就是循环只能添加出 or Tree Like xxx 但第一个 like 是不能有 or 的、

--所以鄙人想出了一个方法、就是先给它 Like 一个不可能查出的条件、再拼接sql

  sql="select *  from [3d_Customer_Cymb]  where Cus_Id=101 and Mark=0 and Tree like '%特朗普是美国总统么?%' "+strWhere+" ";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文