当前位置: 首页 > wzjs >正文

网站建设数据库是什么意思施工企业报验资质清单

网站建设数据库是什么意思,施工企业报验资质清单,如何建立自己的论坛,滨州的网站建设文章目录 概述语法IF的使用语法CASE WHEN 使用语法 行转列场景题目:重新格式话部门表题解 概述 我们在工作中遇到的很多场景需要将数据表中的一行的值转为一列的值,为实现这种场景可以通过IF函数或者CASE WHEN的方式来实现。恰好本人最近在刷题,就以碰到…

文章目录

  • 概述
  • 语法
    • IF的使用语法
    • CASE WHEN 使用语法
  • 行转列场景
    • 题目:重新格式话部门表
    • 题解

概述

我们在工作中遇到的很多场景需要将数据表中的一行的值转为一列的值,为实现这种场景可以通过IF函数或者CASE WHEN的方式来实现。恰好本人最近在刷题,就以碰到的LeetCode中的题 为例子来讲解如何使用IF和 CASE WHEN 实现行转列。

语法

IF的使用语法

IF是一个函数,有三个参数,第一个参数是判断条件,第二个参数是条件成立时的取值,第三个参数是条件不成立时的取值。

IF(条件, 值1, 值2 )

除此以外,IF还可以嵌套使用,在一些复杂的多分支场景中就可以通过嵌套的方式来实现。

IF(条件, 值1, IF( 条件, 值1, 值2 ) )

CASE WHEN 使用语法

CASE WHEN 条件  THEN 操作WHEN 条件  THEN 操作……ELSE 操作
END

和IF一样,CASE WHEN 也可以嵌套使用,但是得注意,每个CASE WHEN都需要保持完整。

CASE WHEN 条件  THEN 操作WHEN 条件  THEN 操作……ELSE CASE WHEN 子条件 THEN 操作ELSE 操作 END
END

行转列场景

题目:重新格式话部门表

表 Department:+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| revenue       | int     |
| month         | varchar |
+---------------+---------+
在 SQL 中,(id, month) 是表的联合主键。
这个表格有关于每个部门每月收入的信息。
月份(month)可以取下列值 ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]。重新格式化表格,使得 每个月 都有一个部门 id 列和一个收入列。以 任意顺序 返回结果表。结果格式如以下示例所示。示例 1:输入:
Department table:
+------+---------+-------+
| id   | revenue | month |
+------+---------+-------+
| 1    | 8000    | Jan   |
| 2    | 9000    | Jan   |
| 3    | 10000   | Feb   |
| 1    | 7000    | Feb   |
| 1    | 6000    | Mar   |
+------+---------+-------+
输出:
+------+-------------+-------------+-------------+-----+-------------+
| id   | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |
+------+-------------+-------------+-------------+-----+-------------+
| 1    | 8000        | 7000        | 6000        | ... | null        |
| 2    | 9000        | null        | null        | ... | null        |
| 3    | null        | 10000       | null        | ... | null        |
+------+-------------+-------------+-------------+-----+-------------+
解释:四月到十二月的收入为空。 
请注意,结果表共有 13 列(1 列用于部门 ID,其余 12 列用于各个月份)。

题解

  • 使用IF函数实现
select id,SUM(IF(month='Jan',revenue,NULL)) AS Jan_Revenue,SUM(IF(month='Feb',revenue,NULL)) AS Feb_Revenue,SUM(IF(month='Mar',revenue,NULL)) AS Mar_Revenue,SUM(IF(month='Apr',revenue,NULL)) AS Apr_Revenue,SUM(IF(month='May',revenue,NULL)) AS May_Revenue,SUM(IF(month='Jun',revenue,NULL)) AS Jun_Revenue,SUM(IF(month='Jul',revenue,NULL)) AS Jul_Revenue,SUM(IF(month='Aug',revenue,NULL)) AS Aug_Revenue,SUM(IF(month='Sep',revenue,NULL)) AS Sep_Revenue,SUM(IF(month='Oct',revenue,NULL)) AS Oct_Revenue,SUM(IF(month='Nov',revenue,NULL)) AS Nov_Revenue,SUM(IF(month='Dec',revenue,NULL)) AS Dec_Revenue
from Department
group by id;
  • 使用CASE WHEN实现
select id,SUM(CASE WHEN month='Jan' THEN revenue ELSE NULL END) AS Jan_Revenue,SUM(CASE WHEN month='Feb' THEN revenue ELSE NULL END) AS Feb_Revenue,SUM(CASE WHEN month='Mar' THEN revenue ELSE NULL END) AS Mar_Revenue,SUM(CASE WHEN month='Apr' THEN revenue ELSE NULL END) AS Apr_Revenue,SUM(CASE WHEN month='May' THEN revenue ELSE NULL END) AS May_Revenue,SUM(CASE WHEN month='Jun' THEN revenue ELSE NULL END) AS Jun_Revenue,SUM(CASE WHEN month='Jul' THEN revenue ELSE NULL END) AS Jul_Revenue,SUM(CASE WHEN month='Aug' THEN revenue ELSE NULL END) AS Aug_Revenue,SUM(CASE WHEN month='Sep' THEN revenue ELSE NULL END) AS Sep_Revenue,SUM(CASE WHEN month='Oct' THEN revenue ELSE NULL END) AS Oct_Revenue,SUM(CASE WHEN month='Nov' THEN revenue ELSE NULL END) AS Nov_Revenue,SUM(CASE WHEN month='Dec' THEN revenue ELSE NULL END) AS Dec_Revenue
from Department
group by id;

由以上两种实现方式可以看出,IF 比 CASE WHEN的实现方式看起来更加简洁,所以如果可以使用IF函数来实现的,都可以采用IF函数来实现,避免代码的臃肿。


文章转载自:

http://PgqtFHsi.wqrdx.cn
http://wnquQZH0.wqrdx.cn
http://hKYqIlrT.wqrdx.cn
http://CtXXayIz.wqrdx.cn
http://HB8pGGqL.wqrdx.cn
http://Vnz7fzBt.wqrdx.cn
http://k4tlCoc6.wqrdx.cn
http://nNES94JS.wqrdx.cn
http://7oO5hlMr.wqrdx.cn
http://jIo4MGIp.wqrdx.cn
http://IwFWFDlB.wqrdx.cn
http://g67qvIc1.wqrdx.cn
http://vRMm1Vlg.wqrdx.cn
http://hhQE9b29.wqrdx.cn
http://r3VsnRLL.wqrdx.cn
http://2RidIlPT.wqrdx.cn
http://lRHFq7RQ.wqrdx.cn
http://VWok6heG.wqrdx.cn
http://wGg7exy5.wqrdx.cn
http://akRIZDFE.wqrdx.cn
http://YcuMMyMh.wqrdx.cn
http://CmAYRi0t.wqrdx.cn
http://AUoY6xdm.wqrdx.cn
http://xekBz3fz.wqrdx.cn
http://banFwzAP.wqrdx.cn
http://yxp1kPTH.wqrdx.cn
http://hNPCyik7.wqrdx.cn
http://vl50DUwM.wqrdx.cn
http://YVAu4OvQ.wqrdx.cn
http://7UJAxHkN.wqrdx.cn
http://www.dtcms.com/wzjs/765221.html

相关文章:

  • 中国移动网站建设怎么做做教程网站如何查用户搜索
  • 哈尔版网站建设建零售网站还是
  • 教育类网站开发wordpress看板猫
  • 手机网站方案公众号的维护与运营
  • 天津省网站制作厂家茶山做网站
  • asp.net 网站计数器做财经比较好的网站有哪些
  • 给网站做rss济南网上房地产
  • 怎么做仿制网站成版年蝴蝶视频app免费
  • 旅游景区网站模板电商网站支付接口
  • 云霄网站建设苏州网站设计服务
  • 温州外贸网站建设网站的简单编程语言
  • dw进行网站建设包含哪些步骤做司考题的网站
  • 广州广告网站建设百度关键词刷搜索量
  • 做英文网站有哪些遵义网约车租车公司
  • 网站加地图网站的相关链接怎么做
  • 个人网站服务器推荐江苏专业做网站的公司
  • 关于解决网站 建设的请示兰州网站建设程序
  • 所有网站的分辨率常州网站运营公司
  • 软件网站开发教育行业网站怎么做
  • 建设系统网站怎样通过手机建网站
  • 怎么让网站被百度搜到电脑做系统哪个网站比较好
  • 南宁网站设计报价南通快速建设网站服务
  • 用什么软件做购物网站服务器租用国外
  • 网站界面一般用什么软件做广西公路建设协会网站
  • 网站建设 计入哪个科目公司部门团建活动策划方案
  • wordpress怎么登北京网站seo公司
  • 平度好的建设网站湖北做网站教程哪家好
  • 具有营销价值好的网站国际品牌的广州网页设计
  • 学做彩票网站有哪些html5网站开发实例
  • 建设微信商城网站制作深圳服务好的网站建设