SQL语句分条件查询

sql语句。有这么个条件,如果a不为空,就执行whereb=c;如果a为空,则执行whereb=d。这样的SQL语句怎么写啊?1、where另约时间isNotnullan... sql 语句。有这么个条件,如果a不为空,就执行where b=c;如果a为空,则执行where b=d。这样的SQL语句怎么写 啊?
1、where 另约时间 is Not null
and PK_CORP=#LoginCorp#
and 另约时间 between #ksrq# and #jzrq#
2、where 另约时间 is Not null
and PK_CORP=#LoginCorp#
and 另约时间 between #ksrq# and #jzrq#
and 实际完成日期=#wcrq#

如果#wcrq#为空的查询条件,那么执行第一个where,如果有值就执行第二个where。
展开
 我来答
greybird
2012-03-02 · TA获得超过470个赞
知道小有建树答主
回答量:609
采纳率:0%
帮助的人:386万
展开全部
select * from table where (a is null and b=c) or (a is not null and b=d)
把两个where条件用or连接起来就行了,不管几个,只是if else关系就用or连接,逻辑关系是一样的,不信你自己仔细看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianhxk
2012-03-03 · TA获得超过422个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:281万
展开全部
where 另约时间 is Not null
and PK_CORP=#LoginCorp#
and 另约时间 between #ksrq# and #jzrq#
and (实际完成日期=#wcrq# or #wcrq# is null)
这个语句的写法取决于你是oracle数据库还是sql server数据库及字段类型
oracle 字符型
trim(#wcrq# ) is null
oracle及sql server数字型
#wcrq# = 0 --0为空的默认值
sql server 空值
#wcrq# = ''
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangguihuaya
2012-03-03
知道答主
回答量:17
采纳率:0%
帮助的人:4.9万
展开全部
Select b=case when a is null then c else d end
From tablename
Where 1=1
希望可以帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wjwang7416
2012-03-02
知道答主
回答量:1
采纳率:0%
帮助的人:1657
展开全部
update 表 set b='c' where a is not null ; Update 表 b=‘d‘ where a is null ;都快不记得了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2012-03-02 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
select *
from tab
where b = (case when a is null then d else c)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式