sql中的case when语句

1.在where子句中:

 1 CREATE  TABLE `hello`.`sometbl` (
 2
 3   `id` INT NOT NULL AUTO_INCREMENT ,
 4
 5   `a` VARCHAR(45) NULL ,
 6
 7   `b` VARCHAR(45) NULL ,
 8
 9   `c` VARCHAR(45) NULL ,
10
11   PRIMARY KEY (`id`) ,
12
13   UNIQUE INDEX `id_UNIQUE` (`id` ASC) );
1 INSERT INTO `hello`.`sometbl` (`a`, `b`, `c`) VALUES (‘1‘, ‘1‘, ‘0‘);
2
3 INSERT INTO `hello`.`sometbl` (`b`, `c`) VALUES (‘1‘, ‘1‘);
4
5 INSERT INTO `hello`.`sometbl` (`a`, `c`) VALUES (‘1‘, ‘1‘);
6
7 INSERT INTO `hello`.`sometbl` (`b`) VALUES (‘1‘);

查询a,b,c中有两个满足=1条件的记录

SELECT * FROM hello.sometbl where ((case when a=‘1‘ then 1 else 0 end)
+(case when b=‘1‘ then 1 else 0 end)
+(case when c=‘1‘ then 1 else 0 end))=2;

2。在select中作为一列

id为1,2,3,4时分别输出,一,二,三,四

SELECT id,case when id=1 then ‘一‘
when id=2 then ‘二‘
when id=3 then ‘三‘
when id=4 then ‘四‘
else ‘其它‘ end 中文数字
FROM hello.sometbl;

输出

时间: 2024-09-28 21:09:25

sql中的case when语句的相关文章

sql中对于case when...then...else...end的写法和理解

查询配件主数据表(tbl_part_base_info)的所有数据和配件是否有物料(物料表(tbl_material)中有配件主数据表的part_no,就表示有物料,反之,则表示没有物料),用sql中的case when...then...else...end来实现 第一种写法: select info.*,(case when material.part_no is null then '否' else '是' end) hasMaterial from tbl_part_base_info 

SQL中的条件判断语句(case when zhen if,ifnull)用法

一.case when then 适用于:sqlserver 和mysql case具有两种格式.简单case函数和case搜索函数.这两种方式,可以实现相同的功能.简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式.还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略. --简单case函数case sex  when '1' then '男'  when '2' then '女’  else '其他' e

SQL中的case when then else end用法

转载自 http://lj.soft.blog.163.com/blog/static/7940248120109215191358/ Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方

【语法】SQL中的case when then else end用法-解决一个字段根据条件取不同值

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

SQL中的CASE的用法

CASE在SQL语句中,很有点类似java等高级编程语言中的switch这样子的多分枝语句,但是有点不同的是,case后面接的是when,另外,when的后续分枝有点类似if后面接else.这个是我的个人认识,case ..when..then..[else].. 下面,看看MySQL的帮助信息,可以看到case的基本语法结构: 1 topics: #CASE的两种基本用法 2 CASE OPERATOR 3 CASE STATEMENT 4 5 MariaDB [mysql]> help ca

SQL中关键字Case的使用

本文非原创 它主要用来简化SQL表达式,在任何允许使用表达式的地方均可使用, 根据条件的不同返回不同的值. 注意:它不能单独执行,只能作为语句的一部分使用, 分为简单 case 表达式和搜索 case 表达式. 1.简单 case 表达式: 它是一个测试表达式与一组简单表达式进行比较,如果和某一个值相等, 则返回对应表达式的值. 语法: case 表达式 / 列名变量 when 测试值1 then 结果表达式1 when 测试值2 then 结果表达式2 …… else 结果表达式 end 例:

在where条件中使用CASE WHEN 语句

CREATE TABLE TB_Test_Report ( id int identity, stateid int, userid int, username varchar(64) ) go INSERT INTO TB_Test_Report (stateid,userid,username) VALUES (20,1,'a') INSERT INTO TB_Test_Report (stateid,userid,username) VALUES (10,2,'b') INSERT INT

SQL中循环和条件语句

1 1.if语句使用示例: 2 declare @a int 3 set @a=12 4 if @a>100 5 begin 6 print @a 7 end 8 else 9 begin 10 print 'no' 11 end 12 13 2.while语句使用示例: 14 declare @i int 15 set @i=1 16 while @i<30 17 begin 18 insert into test (userid) values(@i) 19 set @i=@i+1 20

sql中in和exist语句的区别?(补充了left join和right join)

in和exists(摘录自百度)in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询. 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B)效率低,用到了A表上cc列的索引: select * from A where exists(select cc from B where cc