在SQL语句中如何实现判断是否存在记录后再增加一个条件

lingyun410 2010-05-27 08:42:02
我有这样的一个语句,要实现判断某个表中是否存在当前条件的记录,如果存在再将这个条件添加到语句中来完成数据索引。

例:
Select Top 10 A.ID,A.TO_Name,A.TO_LabelLib From [CNode_TableOne] A
Where A.TO_StateNum In (5,6)
And (
exists(select Count(ID) From [CNode_TableOne] Where TO_StateNum In (5,6) And CharIndex(',31,',TO_LabelLib)>0)
CharIndex(',31,',A.TO_LabelLib)>0
)

Order By A.TO_ViewCount Desc,A.TO_PostTime Desc,A.ID Desc
要实现红色部分的功能,不知道如何来完成这个语句。

检测表CNode_TableOne中的TO_LabelLib字段中是否存在31这个数值的记录,如果存在的话查询语句中将增加CharIndex(',31,'...这个条件,如果不存在将不增加这个条件使用默认所有记录的查询。而且
Select Top 10 A.ID,A.TO_Name,A.TO_LabelLib From [CNode_TableOne] A 这部分语句不能修改只能从条件上做一个判断来实现,不知道我讲的大家明白不?也不知道能不能实现这样的判断!
...全文
444 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingyun410 2010-05-27
  • 打赏
  • 举报
回复
晕,不对,这个条件这样加上去相当于直接写一个charIndex
比如说当查询1311的时候找不到数据的时候那就增加Charindex这个条件实现所有数据的列表。如果有值的话就完全匹配具有这个数值的记录
lingyun410 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bancxc 的回复:]
SQL code
if not exists(select ....)
insert............
[/Quote]
不太理解,可以写的全一点吧。

感谢:
htl258,你的方法我理解了。
htl258_Tony 2010-05-27
  • 打赏
  • 举报
回复
Select Top 10 A.ID,A.TO_Name,A.TO_LabelLib 
From [CNode_TableOne] A
Where A.TO_StateNum In (5,6)
And (select Count(ID)
From [CNode_TableOne]
Where TO_StateNum In (5,6)
And CharIndex(',31,',TO_LabelLib)>0)>0
And CharIndex(',31,',A.TO_LabelLib)>0


还是这个意思,自己试试,纯属猜测
永生天地 2010-05-27
  • 打赏
  • 举报
回复
没怎么看懂
lingyun410 2010-05-27
  • 打赏
  • 举报
回复
if (select Count(ID) From [CY_Product] Where PO_StateNum In (5,6) And CharIndex(',31,',PO_LabelLib)>0)>0
print 'CharIndex('',31,'',A.PO_LabelLib)>0'
else
print '=='
实现像这样的功能,不过是把需要打印的内容添加到SQL语句中来实现条件查询。
rmljoe 2010-05-27
  • 打赏
  • 举报
回复
select top 10 * from 
(select ID,TO_Name,TO_LabelLib From [CNode_TableOne] Where TO_StateNum In (5,6) And CharIndex(',31,',TO_LabelLib)>0)
CharIndex(',31,',TO_LabelLib)>0 Order By TO_ViewCount Desc,TO_PostTime Desc,ID Desc) a
htl258_Tony 2010-05-27
  • 打赏
  • 举报
回复
Select Top 10 A.ID,A.TO_Name,A.TO_LabelLib From [CNode_TableOne] A  
Where A.TO_StateNum In (5,6)
And
exists(select 1 From [CNode_TableOne] Where TO_StateNum In (5,6) And CharIndex(',31,',TO_LabelLib)>0
And
CharIndex(',31,',A.TO_LabelLib)>0
)
Order By A.TO_ViewCount Desc,A.TO_PostTime Desc,A.ID Desc
?
bancxc 2010-05-27
  • 打赏
  • 举报
回复
if not exists(select ....)
insert............

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧