
if else语句只有在存储过程,触发器之类的才有,今天突然在sql上当满足某种条件上要取不同的字段值,一开始直接网上查找相关资料,哇,sql上不支持!!!
不过可以使用case when语句解决,各种数据库都支持。
语法:
case when 条件1 then 结果1 when 条件2 then 结果2 else 结果N end1
可以有任意多个条件,如果没有默认的结果,最后的else也可以不写,
select case when col1 > 1 then col2 else col3 end from XXXtable
SELECT
COUNT(IF(rchannel_type=1,1,0)) AS wangzhan,
COUNT(IF(rchannel_type=2,1,0)) baozhi,
COUNT(IF(rchannel_type=3,1,0)) zazhi,
SUM(CASE WHEN rchannel_type=1 AND rcheck_status=6 THEN 1 ELSE 0 END) AS wangzhanluyong,
(CASE WHEN rchannel_type=1 THEN sum(rfraction) ELSE 0 END) AS wangzhanfenshu,
sum(CASE WHEN rchannel_type=2 AND rcheck_status=6 THEN 1 ELSE 0 END) AS baozhiluyong,
(CASE WHEN rchannel_type=2 THEN sum(rfraction) ELSE 0 END) AS baozhifenshu,
sum(CASE WHEN rchannel_type=3 AND rcheck_status=6 THEN 1 ELSE 0 END) AS zazhiluyong,(
CASE WHEN rchannel_type=3 THEN sum(rfraction) ELSE 0 END) AS zazhifenshu
FROM
tougao_record r LEFT JOIN tougao t
ON rtougao_id = tid
WHERE
raccept_company_id=100 AND tcreate_at>='%2014-7-1%'
GROUP BY
rchannel_type
sql if else 语句 有
IF ELSE 语句
IF ELSE 是最基本的编程语句结构之一几乎每一种编程语言都支持这种结构而
它在用于对从数据库返回的数据进行检查是非常有用的TRANSACT-SQL 使用IF ELSE
的例子如下
语法
if (condition)
begin
(statement block)
end
else if (condition)
begin
statement block)
end
else
begin
(statement block)
end
注意当所指定的条件为真时对应的BEGIN END 语句块就会被执行同时
你也应该注意将每一个语句缩进一定量的空格是一种很好的编程习惯它可以极大的提向
你的程序的易读性和由于易读性不好所导致的错误
以上就是关于SQL语句中如何使用含有ifelse判断语句全部的内容,包括:SQL语句中如何使用含有ifelse判断语句、关于MYSQL数据库中用SELECT CASE THEN ELSE END 这个方法的问题、sql 里有if else 吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)