SQL语句中能否含有if....else...判断语句?

有个表,其中有col1,col2,和col3三列,如果col1>1,输出col2,否则输出col3,这样的条件能否用SQL语句实现?尝试了很久,不得其解,求高手解答... 有个表, 其中有col1,col2,和col3三列, 如果col1>1, 输出col2, 否则输出col3, 这样的条件能否用SQL语句实现? 尝试了很久, 不得其解, 求高手解答 展开
 我来答
人在江湖gi2
推荐于2019-10-04 · TA获得超过8995个赞
知道答主
回答量:40
采纳率:0%
帮助的人:5764
展开全部

SQL语句中是没有if....else...语句的,但可以用case语句代替,而且是所有数据库都支持的,效果和if语句一样,都是表示条件。具体使用语法如下:
case when 条件1,

then 结果1; 

when 条件2 ,

then 结果2 ;

else 结果N ,end。

可以有任意多个条件,如果没有默认的结果,最后的else也可以不写。
例如:select case when col1 > 1 then col2 else col3 end from XXXtable

百度网友12136da
高粉答主

推荐于2019-10-29 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:634
采纳率:100%
帮助的人:11.2万
展开全部

SQL中没有ifif....else...判断语句,但有case…语句,而且是所有数据库都支持的。

拓展资料:

程序中用法如下:

1、oracle和mysql数据库都可以这样写CASE WHEN (RO.APPROVE_QUANTITY - NVL(tto.QUANTITY , 0 )) < 0 THEN 0 ELSE (RO.APPROVE_QUANTITY-NVL(tto.QUANTITY , 0 )) END surplusQuantity.

2、注意:NVL()是oracle数据库中对字段的非空校验,如果字段名为空,则赋值为逗号后面的值。

3、mysql中还有一种if...else的方法if(表达式, 表达式成立的值, 表达式不成立的值)
ifnull("字段名", 值) -- 非空验证。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arthur37
推荐于2018-04-12 · TA获得超过1372个赞
知道小有建树答主
回答量:668
采纳率:75%
帮助的人:423万
展开全部
sql中没有if语句,但有case语句,而且是所有数据库都支持的,
语法是case when 条件1 then 结果1 when 条件2 then 结果2 else 结果N end,
可以有任意多个条件,如果没有默认的结果,最后的else也可以不写,
select case when col1 > 1 then col2 else col3 end from XXXtable
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仍语06a
2018-05-23 · TA获得超过6470个赞
知道答主
回答量:20
采纳率:0%
帮助的人:7088
展开全部
首先SQL语句中不能含有if....else...判断语句!
if else语句只有在存储过程中使用,在SQL是不支持的,不过我们有可以替代的方法,使用case when语句解决,各种数据库都支持。
语法:case when col1>1 then col2 when col1<=1 then col3 else '出现错误'
车到山前必有路,问题肯定是可以中找到方法解决的,不要着急
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
okliuyuqing001
2012-11-05 · TA获得超过178个赞
知道答主
回答量:207
采纳率:50%
帮助的人:92.2万
展开全部
sql中没有if...else...语句,但有case when语句,能达到你想要的效果。
select case when col1>1 then col2 else col3 end from 表名;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式