-
2020-12-31 13:23:12
首先建表和插入数据语句: use Student go create table Score ( 学号 nvarchar(10), 课程 nvarchar(10), 成绩 int ) go insert into Score values('0001','语文',87); insert into Score values('0001','数学',79); insert into Score values('0001','英语'
首先建表和插入数据语句:
use Student
go
create table Score
(
学号 nvarchar(10),
课程 nvarchar(10),
成绩 int
)
go
insert into Score values('0001','语文',87);
insert into Score values('0001','数学',79);
insert into Score values('0001','英语',95);
insert into Score values('0002','语文',69);
insert into Score values('0002','数学',84);
insert into Score values('0001','语文',95);
case when 用法一:
CASE 简单表达式,它通过将表达式与一组简单的表达式进行比较来确定结果。
select 学号,
sum(case when 课程='语文' then 成绩 else 0 end ) as 语文,
sum(case when 课程='数学' then 成绩 else 0 end ) as 数学,
sum(case when 课程='英语' then 成绩 else 0 end ) as 英语
from Score
group by 学号
case when 用法二:
CASE 搜索表达式,它通过计算一组布尔表达式来确定结果。
select 学号,成绩,
case 成绩
when 87 then '良'
when 79 then '良'
when 95 then '优'
when 69 then '中'
else '差' end as test
from Score
上面为本人对case when的理解,,如有错误希望批评指出,多谢!
注:每个case 对应一列数据
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
更多相关内容 -
casewhen:创建可重用的dplyr :: case_when()函数
2021-02-05 20:41:32casewhen:创建可重用的dplyr :: case_when()函数 -
数据库 casewhen 的用法
2020-09-19 18:35:46select [Id] ,[TrainNumber] ,[SupplierId] , case warehouseType when 0 then [Amount] else [Amount]*-1 end as IsOut // 数据对比 ,[Amount] ,[ClassId] ,[WarehouseType] ,[Remark] ...select [Id] ,[TrainNumber] ,[SupplierId] , case warehouseType when 0 then [Amount] else [Amount]*-1 end as IsOut // 数据对比 ,[Amount] ,[ClassId] ,[WarehouseType] ,[Remark] ,[SetInDate] from WWeiqinWarehousing
创建了一个列数据是 Isout即可,其实就是 当数据正常的时间来进行数据比对
Case具有两种格式。简单Case函数和Case搜索函数。
第一种 格式 : 简单Case函数 :
格式说明
case 列名
when 条件值1 then 选项1
when 条件值2 then 选项2…
else 默认值 end
eg:
select
case job_level
when ‘1’ then ‘1111’
when ‘2’ then ‘1111’
when ‘3’ then ‘1111’
else ‘eee’ end
from dbo.employee第二种 格式 :Case搜索函数
格式说明
case
when 列名= 条件值1 then 选项1
when 列名=条件值2 then 选项2…
else 默认值 end
eg:
update employee
set e_wage =
case
when job_level = ‘1’ then e_wage1.97
when job_level = ‘2’ then e_wage1.07
when job_level = ‘3’ then e_wage1.06
else e_wage1.05
end提示:通常我们在写Case When的语句的时候,会容易忘记 end 这个结束,一定要记得哟!
比较: 两种格式,可以实现相同的功能。
简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的 值,剩下的Case部分将会被自动忽略。
-
mysql 中casewhen用法
2021-01-27 12:31:29需求:需要在查询出的字段中,判断这个某个字段是否为null,并指定想要的值,SELECTtemp.gId id,temp.`name`,temp.point,temp.give_user_proportion,temp.sales_price,temp.cover_img,temp.limit_num,temp.price,...需求:需要在查询出的字段中,判断这个某个字段是否为null,并指定想要的值,
SELECT
temp.gId id,temp.`name`,temp.point,temp.give_user_proportion,temp.sales_price,temp.cover_img,temp.limit_num,temp.price,temp.show_sale_price,temp.isPromotion is_promotionFROM(SELECTallgoods.gId,
allgoods.`name`,
allgoods.sale_num,
allgoods.point,
allgoods.give_user_proportion,
allgoods.sales_price,
allgoods.cover_img,
allgoods.modify_date,
allgoods.productId,pi.limit_num,pi.price,pi.show_sale_price,CASE
WHEN pi.price IS NULL THEN
FALSE
ELSE
TRUEEND ASisPromotionFROM(SELECTgood.id gId,
good.`name`,
good.sale_num,
good.point,
good.give_user_proportion,
produc.sales_price,
produc.cover_img,
produc.modify_date,
produc.id productIdFROM(SELECT
*
FROMgoods goodstempWHEREgoodstemp.is_del=FALSEAND goodstemp.check_status = 'configed'
AND goodstemp.category_id = 174976742484877312) goodLEFT JOIN(SELECT
*
FROMproduct p2WHEREp2.is_del=FALSEAND p2.is_putaway =TRUEAND p2.is_show =TRUE
) producON good.id =produc.goods_idWHEREgood.id=produc.goods_id
) allgoodsLEFT JOIN(SELECT
*
FROMpromotion promWHEREprom.is_del=FALSEAND TO_DAYS(NOW()) >=TO_DAYS(prom.start_date)AND TO_DAYS(NOW()) <=TO_DAYS(prom.end_date)AND prom.publish_status = 'published') promotiontempON allgoods.gId =promotiontemp.goods_idLEFT JOIN promotion_item pi ON promotiontemp.id = pi.promotion_id
)temp
ORDER BY
temp.isPromotion DESC
结果:
当你的表示myisam时:
SELECT * FROM tbl -- this will do a "table scan". If the table has never had any DELETEs/REPLACEs/UPDATEs, the records will happen to be in the insertion order, hence what you observed.
大致意思为,一个myisam引擎表在没有任何的删除,修改操作下,执行 select 不带order by,那么会按照插入顺序进行排序。
If you had done the same statement with an InnoDB table, they would have been delivered in PRIMARY KEY order, not INSERT order. Again, this is an artifact of the underlying implementation, not something to depend on.
对于innodb引擎表来说,在相同的情况下,select 不带order by,会根据主键来排序,从小到大
-
sql笔记1:sql执行优先级和casewhen用法、sql执行顺序
2021-01-14 18:42:26,就可以在SQL语句中使用 Case When这个函数了. Case具有两种格式。简单Case函数和Case搜索函数。 第一种 格式 : 简单Case函数 : 格式说明 case 列名 when 条件值1 then 选择项1 when 条件值2 then 选项2....... else...MySQL 语句中执行优先级——and比or高
例:
select * from table where 条件1 AND 条件2 OR 条件3
等价于
select * from table where ( 条件1 AND 条件2 ) OR 条件3
select * from table where 条件1 AND 条件2 OR 条件3 AND 条件4
等价于
select * from table where ( 条件1 AND 条件2 ) OR ( 条件3 AND 条件4 )
sql执行顺序
from > on > join > where > group by > having > select > order by > limit
Case When
当我们需要从数据源上 直接判断数据显示代表的含义的时候 ,就可以在SQL语句中使用 Case When这个函数了.
Case具有两种格式。简单Case函数和Case搜索函数。
第一种 格式 : 简单Case函数 :
格式说明
case 列名 when 条件值1 then 选择项1 when 条件值2 then 选项2....... else 默认值 end
eg:
select case job_level when '1' then '1111' when '2' then '1111' when '3' then '1111' else 'eee' end from dbo.employee
第二种 格式 :Case搜索函数
格式说明
case when 列名= 条件值1 then 选择项1 when 列名=条件值2 then 选项2....... else 默认值 end
eg:
update employee set e_wage = case when job_level = '1' then e_wage*1.97 when job_level = '2' then e_wage*1.07 when job_level = '3' then e_wage*1.06 else e_wage*1.05 end
提示:通常我们在写Case When的语句的时候,会容易忘记 end 这个结束,一定要记得哟!
-
oracle case when 语句的用法详解
2020-12-16 02:49:231. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘2’ THEN ‘女’ ELSE ‘其他’ END –Case搜索函数 CASEWHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘2’ ... -
Sql case when 用法实例详解
2021-06-03 15:43:40sql中case when还是比较常见的用法。经常会出现一段时间不用,相关写法与语法又记不太清楚的情况。干脆就记一下,以备不时之需。 1.准备数据 现在有一张表xxx,里面有一个字段叫basicinfo_credit_status,类型为整数... -
Oracle,CASE,WHEN,用法介绍 介绍的用法
2021-05-07 01:18:51复制代码代码如下:--简单Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASEWHEN sex = '1' THEN '男'WHEN sex = '2' THEN '女'ELSE '其他' END复制代码代码如下:SELECT grade... -
关于oracle case when的多种用法
2021-03-08 05:48:551. CASE WHEN 表达式有两种形式--简单Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASEWHEN sex = '1' THEN '男'WHEN sex = '2' THEN '女'ELSE '其他' END2. CASE WHEN 在... -
MySQL数据库之Mysql casewhen的三种用法
2021-02-02 01:37:00本文主要向大家介绍了MySQL数据库之Mysql casewhen的三种用法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。<casewhen的三种用法:1.case字段when,字段的具体值。selecta.*,casenamewhen'... -
case when的几种用法
2021-06-05 19:01:52用法一: select case c_sex when 1 then '男' else '女' end as '性别', count(*) as '人数' from user_inofr group by '性别' 用法二: select case when c_sex=1 then '男' else '女' end as '性别'... -
Oracle中case when的用法
2021-01-26 16:11:31特记录对于case when的用法,欢迎各位朋友指正,不喜勿喷。 首先case when有两种表达方式,见下图的详细解释。但是在使用中需要我们灵活嵌套公式哦。 比如:表abc中记录了id,name,type。我们要根据type的类型... -
SQL之CASE WHEN用法详解
2021-07-16 16:57:12价格表如下: 当能耗值小于10时,使用P_LEVEL=0时的P_PRICE的值,能耗值大于10小于30使用P_LEVEL=1时的P_PRICE的值… CASE WHEN energy (SELECT P_LIMIT FROM TABLE_PRICE WHERE P_LEVEL = 0) THEN (SELECT P_PRICE... -
sql 中 case when 语法使用方法
2020-09-11 06:23:50sql语言中有没有类似C语言中的switch case的语句? -
case when的使用方法
2020-09-10 16:40:59else 默认值 end 下面来对case when进行简单测试使用,首先创建两张表 表A_TEST /* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50721 Source Host : localhost:3306 ... -
HIVE case when用法
2020-05-15 18:16:20id = 2 AND t.prod_type_3 NOT LIKE '%冰箱%' THEN 9 ELSE cate_id END cate_id, 注意:END只是作为条件的结束语句,后面字段为别名,没有特殊含义 2.case when 的用法 用法一 case tb1.os when 'android' then ' ... -
db2存储过程CASE-WHEN的使用
2018-06-25 19:15:57SET SCHEMA TMISUSR ;SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","TMISUSR";CREATE PROCEDURE "TMISUSR"."...P -
MySQL排序中使用CASE WHEN的方法示例
2020-09-09 06:07:21主要给大家介绍了关于MySQL排序中使用CASE WHEN的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
Oracle中Case When的用法
2021-11-08 20:18:28一、Case的两种表达式 1.1、简单的case表达式 SELECT CASE 列名 WHEN 值1 THEN 結果1 WHEN 值2 THEN 結果2 ELSE 结果3 END FROM table1; 1.2、检索的cse表达式 ...二、Case的不同用法 2.1、作为求个 -
Oracle查询语句中Casewhen的使用
2021-05-04 01:01:23case when和decode函数用法有一些相似,只是decode是枚举函数,而case when则更加灵活,同时case when相当于一个特殊的只有两个枚case when语句语法如下:case when 表达式 then valueA else valueB end;具体使用... -
case when的详细用法
2020-12-22 17:18:35case when的用法,列转行第一种用法,对表中字段可能出现的值,作出对应的处理一级目录一级目录一级目录一级目录一级目录 表test,字段如图: 第一种用法,对表中字段可能出现的值,作出对应的处理 **如图:**对... -
Mysql casewhen的三种用法
2021-03-04 04:47:03case when 的三种用法:1. case 字段 when ,字段的具体值。select a.*,case namewhen '流浪' then '法师'else '战士'end as '类型'FROM c_20170920 a2. case when 字段,这个可以对字段进行取范围。SELECT a.*,... -
【SQL】SQL Case When用法
2019-07-06 18:00:00可以在 SELECT、UPDATE、DELETE 和 SET 等语句以及 select_list、IN、WHERE、ORDER BY 和 HAVING 等子句中使用 CASE。这里使用MySQL数据库进行操作。 语法格式 1、简单表达式 select *,case sex when '1'... -
sql语句之case when的用法
2021-01-27 17:24:40当需要从数据源上直接判断数据显示带不动含义的时候,就可以在SQL语句中使用case when 函数。 语法如下: Case具有两种格式。简单Case函数和Case搜索函数。 简单Case函数格式: CASE 列名 WHEN 条件值1 THEN 选项1 ...