【SQL 学习】case 表达式

SQL> --使用case 表达式

---简单CASE表达式
SQL> select product_id,product_type_id ,
  2  case product_type_id
  3  when 1 then 'book'
  4  when 2 then 'video'
  5  when 3 then 'dvd'
  6  when 4 then 'cd'
  7  else 'magazine'
  8  end
  9  from products;

PRODUCT_ID PRODUCT_TYPE_ID CASEPROD
---------- --------------- --------
         1               1 book
         2               1 book
         3               2 video
         4               2 video
         5               2 video
         6               2 video
         7               3 dvd
         8               3 dvd
         9               4 cd
        10               4 cd
        11               4 cd
        12                 magazine
已选择12行。

已用时间:  00: 00: 00.03

------搜索CASE 表达式
SQL> select product_id,product_type_id ,
  2  case
  3  when product_type_id=1 then 'book'
  4  when product_type_id=2 then 'video'
  5  when product_type_id=3 then 'dvd'
  6  when product_type_id=4 then 'cd'
  7  else 'magazine'
  8  end
  9  from products;

PRODUCT_ID PRODUCT_TYPE_ID CASEWHEN
---------- --------------- --------
         1               1 book
         2               1 book
         3               2 video
         4               2 video
         5               2 video
         6               2 video
         7               3 dvd
         8               3 dvd
         9               4 cd
        10               4 cd
        11               4 cd
        12                 magazine
已选择12行。

------在搜索CASE表达式中使用操作符。

已用时间:  00: 00: 00.03
SQL> select product_id ,price,
  2  case
  3  when price > 15 then 'Expensive'
  4  else 'cheap'
  5  end
  6  from products;

PRODUCT_ID      PRICE CASEWHENP               
---------- ---------- ---------               
         1      19.95 Expensive
         2         30 Expensive
         3      25.99 Expensive
         4      13.95 cheap
         5      49.99 Expensive
         6      14.95 cheap
         7      13.49 cheap
         8      12.99 cheap
         9      10.99 cheap
        10      15.99 Expensive
        11      14.99 cheap
        12      13.49 cheap

已选择12行。

时间: 2024-11-10 07:57:59

【SQL 学习】case 表达式的相关文章

使用CASE表达式替代SQL Server中的动态SQL

原文:使用CASE表达式替代SQL Server中的动态SQL 翻译自: http://www.mssqltips.com/sqlservertip/1455/using-the-case-expression-instead-of-dynamic-sql-in-sql-server/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012620 问题: 在决定IF/ELS

CASE语句与CASE表达式

      case语句与case表达式是plsql流程控制的重要组成部分,尽管其使用方法较为简单,但容易混淆.本文将描述case语句与case表达式并给出演示以便于更好理解两者的异同及使用时的注意事项. 一.简单case语句 -->语法 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSION 2 THEN STATEMENT 2; ... WHEN EXPRESSION N THEN STATEMENT N; ELSE

SQL中case when的用法详解

Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 1.语法 CASE input_expression_r WHEN when_expression_r THEN result_expression_r [ ...n ] [ ELSE else_result_expression_r ] END 2.实例   CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END Case搜索函数 1.语法 CASE WH

CASE表达式实现基于条件逻辑来返回一个值_MsSql

我们在开发过程中,经常需要针对一列,基于条件逻辑来返回一个值,那么,这时候就需要使用到CASE表达式了. 例如,以下对Products表的查询就在SELECT语句中使用了CASE表达式,以生成用于描述categoryid列取值的信息. SQL代码如下: -- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT productid,productname,categoryid, CASE categoryid WHEN 1 THEN 'Beverages' W

CASE表达式实现基于条件逻辑来返回一个值

我们在开发过程中,经常需要针对一列,基于条件逻辑来返回一个值,那么,这时候就需要使用到CASE表达式了. 例如,以下对Products表的查询就在SELECT语句中使用了CASE表达式,以生成用于描述categoryid列取值的信息. SQL代码如下: -- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT productid,productname,categoryid, CASE categoryid WHEN 1 THEN 'Beverages' W

Firebird的Case表达式功能

    说来惭愧,自从FB1.5出来以后,一直没有顾上很深入的挖掘它的新功能,只是当它是IB的一个延续来对待--只要能平滑移植,就算OK. 说来惭愧,自从FB1.5出来以后,一直没有顾上很深入的挖掘它的新功能,只是当它是IB的一个延续来对待--只要能平滑移植,就算OK.    前两天才发现,Firebird 1.5.2里,已经支持了CASE 表达式.在我看来,这是关系型数据库中一个相当重要的功能,因为利用CASE,可以生成强大的数据透视表--这个东西好像在Excel等电子表格里有个专门的名字,忘

sql语句case when会报case关键字的错误

问题描述 sql语句case when会报case关键字的错误 select * from shrzl a inner join (select max(shrdh) shrdh,max(id) id from sfglb group by fhrdh)b on a.shrdh=b.shrdh case when b.shrdh is not null then a.no=-1 end 解决方案 SQL的case when语句sql语句中case when的用法SQL语句中CASE WHEN用法

sqlite中SQL语句的表达式不能包含字段值吗?

问题描述 sqlite中SQL语句的表达式不能包含字段值吗? 例如:"update 表名 set 整型字段1=64,整型字段2=整型字段1+32 where 字段1=64;" 结果不对啊?难道表达式中只能是常数,不能有字段值吗? 解决方案 不可以,只能写 update 表名 set 整型字段1=64,整型字段2=64+32 where 字段1=64 如果非要按照你的写法,可以写 update 表名 set 整型字段1=64,整型字段2=(select 整型字段1 from 表 wher

sql中case语句的用法浅谈_MsSql

SQL中Case的使用方法 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 这两种方式,可以实现相同的功能.简单Ca