这个sql语句怎么写:按照两个条件查询
主要意思是有两个字段,如果A大于0,输出A,B大于0,输出B,现在的问题是当A、B都大于0时,SQL语句怎么写,我写了一条,不能达到效果:selecttop10A,B,T...
主要意思是有两个字段,如果A大于0,输出A,B大于0,输出B,现在的问题是当A、B都大于0时,SQL语句怎么写,我写了一条,不能达到效果:
select top 10 A,B,TID from Test when Support<>0 or pposition<>0 and TID=" & cid&"
求高手解答
我又这样写了,能实现A、B都大于0的数据查询
select top 10 A,tid from test where A<>0 and tid=" & cid&" union all select top 10 B,tid from test where B<>0 and tid=" & cid&"
TID为父ID,test表中UID为自动更新事务
但当A、B都大于0时,如何只输出A或B的UID字段的数据呢
这样写后可以实现A、B等值的情况下只显示一条,但不等值的情况下还是会有重复
select top 10 ID,A,tid from test where A>0 and tid=" & cid&" union select top 10 ID,B,tid from test where B>0 and tid=" & cid&"
test字段
ID TID A B
1 12 0 0
2 12 1 0
3 12 0 1
4 12 1 1
5 12 1 6
6 12 5 2
查询记录结果:
2 12 1
3 12 1
4 12 1
5 12 6
6 12 5 展开
select top 10 A,B,TID from Test when Support<>0 or pposition<>0 and TID=" & cid&"
求高手解答
我又这样写了,能实现A、B都大于0的数据查询
select top 10 A,tid from test where A<>0 and tid=" & cid&" union all select top 10 B,tid from test where B<>0 and tid=" & cid&"
TID为父ID,test表中UID为自动更新事务
但当A、B都大于0时,如何只输出A或B的UID字段的数据呢
这样写后可以实现A、B等值的情况下只显示一条,但不等值的情况下还是会有重复
select top 10 ID,A,tid from test where A>0 and tid=" & cid&" union select top 10 ID,B,tid from test where B>0 and tid=" & cid&"
test字段
ID TID A B
1 12 0 0
2 12 1 0
3 12 0 1
4 12 1 1
5 12 1 6
6 12 5 2
查询记录结果:
2 12 1
3 12 1
4 12 1
5 12 6
6 12 5 展开
3个回答
展开全部
select top 10 case when A > 0 then A when B >0 then B else 0 end ab,
TID from Test where (a>0 or b>0) and TID="&cid&"
TID from Test where (a>0 or b>0) and TID="&cid&"
更多追问追答
追问
这样写后,只有一条记录了,我的意思可能没有表达清楚,TID为父ID,test表中UID为自动更新事务,我想要实现的效果是:但当A、B都大于0时,如何只输出A或B的UID字段的数据呢
追答
我本来以为自己明白的,现在彻底糊涂了。
你能不能把数据举个例子,包括
数据库里的数据,
你查询出的结果
给一个例子
都相同的是取大的还是随便? 试试这个:
select top 10 ID,TID,
case when A > 0 and B>0 and A>B then A when A >0 then A else null end A,
case when A > 0 and B>0 and B>A then B when B >0 then B else null end B,
from Test where (a>0 or b>0) and TID="&cid&"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询