[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
2017-03-21 09:44
627 查看
SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
-- DDL:创建表 CREATE TABLE TenpoShohin (tenpo_id CHAR(4) NOT NULL, tenpo_mei VARCHAR(200) NOT NULL, shohin_id CHAR(4) NOT NULL, suryo INTEGER NOT NULL, PRIMARY KEY (tenpo_id, shohin_id)); -- DML:插入数据 INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000A', '东京', '0001', 30); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000A', '东京', '0002', 50); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000A', '东京', '0003', 15); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000B', '名古屋', '0002', 30); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000B', '名古屋', '0003', 120); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000B', '名古屋', '0004', 20); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000B', '名古屋', '0006', 10); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000B', '名古屋', '0007', 40); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000C', '大阪', '0003', 20); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000C', '大阪', '0004', 50); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000C', '大阪', '0006', 90); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000C', '大阪', '0007', 70); INSERT INTO TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) VALUES ('000D', '福冈', '0001', 100);
测试数据
图
7.EXIST
很多时候基本上可以使用 IN 或 NOT IN 来代替该谓词。作用:判断是否存在满足某种条件的记录。
NOT EXIST 与 EXIST 相反,不存在:
三、CASE 表达式
1.CASE 表达式:(条件)分歧。2.语法
--语法 --CASE WHEN <判断表达式> THEN <表达式> -- WHEN <判断表达式> THEN <表达式> -- ... -- ELSE <表达式> --END
判断表达式类似“键 = 值”的形式,返回值为真值(TRUE/FALSE/UNKNOW)的表达式。如果结果为真,就会返回 THEN 子句中的表达式;如果不为真,就跳转到下一条 WHEN 子句的判断中;如果到最后的 WHEN 子句都不为真,就执行最后一条 ELSE 的表达式。
下面是简化版的 CASE 表达式:
3.行转列
备注
这里采用 MS SQL Server 进行验证,不保证所有的 DBMS 执行结果正确。《SQL 基础知识梳理》系列
《SQL 基础知识梳理(一) - 数据库与 SQL》《SQL 基础知识梳理(二) - 查询基础》
《SQL 基础知识梳理(三) - 聚合和排序》
《SQL 基础知识梳理(四) - 数据更新》
《SQL 基础知识梳理(五) - 复杂查询》
《SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式》
《SQL 基础知识梳理(七)- 集合运算》
【博主】反骨仔
【原文】http://www.cnblogs.com/liqingwen/p/6572284.html
【参考】《SQL ゼロからはじめるデータベース操作》
相关文章推荐
- Java软件开发基础知识梳理之(2)------动态创建PreparedStatement解决SQL中带的in条件
- SQL基础学习_05_函数、谓词、CASE表达式
- javascript基础知识梳理-表达式和操作符
- SQL中CONVERT转化函数小结 (很基础但总是记不住的知识)
- mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作
- C++基础知识梳理--C++的6个默认函数
- [SQL] SQL 基础知识梳理(二) - 查询基础
- SQL基础知识(44)-SQL COUNT() 函数
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
- 【Java基础知识】switch表达式、case穿透、default、switch结束条件
- SQL 基础知识梳理(五) - 复杂查询
- [SQL] SQL 基础知识梳理(七)- 集合运算
- [SQL] SQL 基础知识梳理(四) - 数据更新
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
- orcal 中sql字符函数,数字函数,日期函数,转换函数学习,CASE和DECODE表达式学习
- SQL基础语句(数据库函数,时间函数,Union,Case,索引)
- [SQL] SQL 基础知识梳理(五) - 复杂查询
- [C++ 面试基础知识总结]表达式和函数
- 通过例子学习正则表达式(一)--基础知识
- 《C++捷径教程》读书笔记--Chapter 7--函数,第一部分:基础知识(第二部分)