在where子句中使用case when函数

CASE WHEN 其实相当于产生了一个列,最后WHERE 再按那个列来限定

SELECT * AS A FROM TB WHERE CASE WHEN 1=1 THEN 1 ELSE 0 END =1
-- 等价于
SELECT * FROM (SELECT * ,CASE WHEN 1=1 THEN 1 ELSE 0 END AS A FROM TB) T WHERE A=1
### 回答1: case函数可以用于where子句,用于根据条件过滤数据。例如,可以使用以下语法: SELECT column1, column2 FROM table_name WHERE CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE result3 END; 其,condition1和condition2是条件表达式,result1、result2和result3是对应条件的结果。如果条件表达式为真,则返回对应的结果,否则返回ELSE子句的结果。 ### 回答2: case函数用于where子句时,可以起到条件判断的作用,根据满足特定条件的情况返回不同的结果。 使用case函数在where子句,可以根据条件对数据进行筛选。具体使用方式如下: 首先,在where子句使用case函数起始关键字"case",然后根据需要添加条件判断。 例如,假设有一个学生成绩表,我们希望查找所有数学成绩大于等于80分的学生,但如果数学成绩为0,则查找语文成绩大于等于60分的学生。 可以使用以下语句进行查询: SELECT * FROM 学生成绩表 WHERE CASE WHEN 数学成绩 >= 80 THEN 1 WHEN 数学成绩 = 0 AND 语文成绩 >= 60 THEN 1 ELSE 0 END = 1; 在上述语句,我们使用case函数进行了条件判断。当数学成绩大于等于80时,将返回1;当数学成绩为0且语文成绩大于等于60时,也返回1;否则,返回0。然后在where子句判断case函数的结果是否等于1,满足条件的数据将被筛选出来。 通过使用case函数在where子句,我们可以根据不同的条件进行筛选,灵活控制数据的查询结果。 ### 回答3: case函数可以在where子句进行条件判断,根据条件的不同返回不同的结果。 在使用case函数时,可以有两种语法形式: 1.简单的情况: case expression when condition1 then result1 when condition2 then result2 ... else result end 其expression是要进行判断的表达式,condition1、condition2是条件表达式,是针对expression的判断条件,result1、result2是根据条件判断返回的结果。 2.搜索的形式: case when condition1 then result1 when condition2 then result2 ... else result end 在搜索形式,没有expression,而是直接根据条件表达式进行判断。 这两种形式都可以在where子句使用,用于筛选满足条件的数据。例如,可以使用case函数在where子句判断某个字段的值,然后根据条件筛选出符合要求的记录。 例如,有一个学生成绩表,需要查询出及格的学生记录,可以使用以下语句: select * from 学生成绩表 where case when 成绩 >= 60 then 1 else 0 end = 1 以上语句case函数用于判断成绩是否大于等于60,如果成绩大于等于60,则返回1,否则返回0。通过将case函数的结果与1进行比较,可以筛选出及格的学生记录。 总之,case函数可以在where子句用于灵活的条件判断,根据不同的条件返回不同的结果,并通过与其他条件进行组合,实现更复杂的数据筛选。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值