这个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
展开
 我来答
micro0369
2012-07-12 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:3931万
展开全部
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为父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&"
郭哥之子
2012-07-12 · TA获得超过143个赞
知道小有建树答主
回答量:461
采纳率:100%
帮助的人:190万
展开全部
select * from test where A>0 or B>0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
suny212
2012-07-12 · TA获得超过219个赞
知道答主
回答量:123
采纳率:0%
帮助的人:43.9万
展开全部
你都不知道同时大于零时要什么,别人怎么帮你写,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式