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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句中能否含有if....else...判断语句?相关的知识,希望对你有一定的参考价值。

有个表, 其中有col1,col2,和col3三列, 如果col1>1, 输出col2, 否则输出col3, 这样的条件能否用SQL语句实现? 尝试了很久, 不得其解, 求高手解答

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

参考技术A

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("字段名", 值) -- 非空验证。

参考技术B 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本回答被提问者和网友采纳
参考技术C 首先SQL语句中不能含有if....else...判断语句!
if else语句只有在存储过程中使用,在SQL是不支持的,不过我们有可以替代的方法,使用case when语句解决,各种数据库都支持。
语法:case when col1>1 then col2 when col1<=1 then col3 else '出现错误'
车到山前必有路,问题肯定是可以中找到方法解决的,不要着急
参考技术D sql中没有if...else...语句,但有case when语句,能达到你想要的效果。
select case when col1>1 then col2 else col3 end from 表名;

SQL Server判断语句(IF ELSE/CASE WHEN )

1、IF ELSE

不能用在SELECT中,只能是块,比如:

IF ...

  BEGIN

    ...

  END

ELSE (注意这里没有ELSE IF,要实现只能在下面的块中用IF判断)

  BEGIN

    ...

  END

参考:https://msdn.microsoft.com/en-us/library/ms182587.aspx

2、CASE WHEN THEN ELSE END

可以在SELECT中使用,但是要包括END结尾

CASE ...

  WHEN ... THEN ...

  ELSE ...(可省略)

END

参考:https://msdn.microsoft.com/en-us/library/ms181765.aspx

以上是关于SQL语句中能否含有if....else...判断语句?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server判断语句(IF ELSE/CASE WHEN )

SQL Server判断语句(IF ELSE/CASE WHEN )

在oracle sql语句里有没有if...else...的用法,请各位大侠给个例子看看,灰常感谢!!

Python的条件判断语句------if/else语句

132-使用if else if else语句进行多条件判断

Shell if else语句(详解版)