时间:2021-07-01 10:21:17 帮助过:21人阅读
2.函数的种类:
(1)算术函数 - 数值计算
(2)字符串函数 - 字符串操作
(3)日期函数 - 日期操作
(4)转换函数 - 转换数据类型
(5)聚合函数 - 数据聚合
【备注】数据类型 NUMBERIC(全体位数,小数位数)可以指定数值的大小。
初始化数据
- <span style="color: #0000ff;">CREATE</span> <span style="color: #0000ff;">TABLE</span><span style="color: #000000;"> SampleMath
- (
- m NUMERIC(</span><span style="color: #800000; font-weight: bold;">10</span>, <span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">) ,
- n </span><span style="color: #0000ff;">INTEGER</span><span style="color: #000000;"> ,
- p </span><span style="color: #0000ff;">INTEGER</span><span style="color: #000000;">
- );
- </span><span style="color: #0000ff;">BEGIN</span> <span style="color: #0000ff;">TRAN</span><span style="color: #000000;">;
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #800000; font-weight: bold;">500</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">0</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">180</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">0</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">7</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #800000; font-weight: bold;">3</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">5</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #800000; font-weight: bold;">2</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">4</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #800000; font-weight: bold;">8</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #800000; font-weight: bold;">3</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #800000; font-weight: bold;">2.27</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">1</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #800000; font-weight: bold;">5.555</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">2</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #800000; font-weight: bold;">1</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleMath
- ( m, n, p )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #800000; font-weight: bold;">8.76</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> m - numeric</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> n - integer</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> p - integer</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">COMMIT</span>;
(1)ABS - 绝对值:不考虑数值的符号,表示一个数到原点距离的数值。
绝对值的计算方法:0 和正数的绝对值就是其本身,负数的绝对值就是去掉符号后的结果。
- <span style="color: #008080;">--</span><span style="color: #008080;">语法: ABS(数值)</span>
图:第 2 行:-180 的绝对值为 180
(2)MOD - 取余、求余
- <span style="color: #008080;">--</span><span style="color: #008080;">语法: MOD(被除数,除数)</span>
【备注】Oracle、DB2、PostgreSQL、MySQL 支持该函数,而 SQL Server 不支持该函数,所以这里用“%”代替。
(3)ROUND - 四舍五入
如果指定四舍五入的位数为 1,那么会对小数点第 2 位进行四舍五入;如果指定位数为 2,那么就会对第 3 位进行四舍五入。
初始化数据
- <span style="color: #0000ff;">CREATE</span> <span style="color: #0000ff;">TABLE</span><span style="color: #000000;"> SampleStr
- (
- str1 </span><span style="color: #0000ff;">VARCHAR</span>(<span style="color: #800000; font-weight: bold;">40</span><span style="color: #000000;">),
- str2 </span><span style="color: #0000ff;">VARCHAR</span>(<span style="color: #800000; font-weight: bold;">40</span><span style="color: #000000;">),
- str3 </span><span style="color: #0000ff;">VARCHAR</span>(<span style="color: #800000; font-weight: bold;">40</span><span style="color: #000000;">)
- )
- </span><span style="color: #0000ff;">BEGIN</span> <span style="color: #0000ff;">TRAN</span><span style="color: #000000;">;
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">opx</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">rt</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abc</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">def</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">aaa</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">aaa</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">xyz</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">@!#$%</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">ABC</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">aBC</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #0000ff;">NULL</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abc太郎</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abc</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">ABC</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abcdefabc</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abc</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">ABC</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleStr
- ( str1, str2, str3 )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">micmic</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str1 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">i</span><span style="color: #ff0000;">‘</span>, <span style="color: #008080;">--</span><span style="color: #008080;"> str2 - varchar(40)</span>
- <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">T</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> str3 - varchar(40)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">COMMIT</span>;
(1)拼接:+
(2)LEN - 字符串长度
- <span style="color: #008080;">--</span><span style="color: #008080;">语法: LEN(字符串)</span>
(3)LOWER - 小写转换
- <span style="color: #008080;">--</span><span style="color: #008080;">语法:LOWER(字符串)</span>
(4)REPLACE - 字符串的替换
- <span style="color: #008080;">--</span><span style="color: #008080;">语法:REPLACE(对象字符串, 替换前的字符串, 替换后的字符串)</span>
(5)SUBSTRING - 字符串的截取
- <span style="color: #008080;">--</span><span style="color: #008080;">语法:SUBSTRING(对象字符串,截取的起始位置,截取的字符数)</span>
(6)UPPER - 大写转换
- <span style="color: #008080;">--</span><span style="color: #008080;">语法:UPPER(字符串)</span>
(1)获取当前日期和时间:
(2)DATEPART - 截取日期元素
(1)CAST - 类型转换
(2)COALESCE - 将 NULL 转换为其他值
作用:返回可变参数中左侧开始的第一个不是 NULL 的值(参数是可变的,即可以个数是无限的)。
- <span style="color: #008080;">--</span><span style="color: #008080;">语法:COALESCE(数据1, 数据2, 数据3 ...)</span>
图
图
1.谓词:返回值为真值(TRUE/FALSE/UNKNOWN)的函数。
【备注】= 运算符:字符串完全一致。
初始化数据
- <span style="color: #0000ff;">CREATE</span> <span style="color: #0000ff;">TABLE</span><span style="color: #000000;"> SampleLike
- (
- strcool </span><span style="color: #0000ff;">VARCHAR</span>(<span style="color: #800000; font-weight: bold;">6</span>) <span style="color: #808080;">NOT</span> <span style="color: #0000ff;">NULL</span><span style="color: #000000;">,
- </span><span style="color: #0000ff;">PRIMARY</span> <span style="color: #0000ff;">KEY</span><span style="color: #000000;">(strcool)
- )
- </span><span style="color: #0000ff;">BEGIN</span> <span style="color: #0000ff;">TRAN</span><span style="color: #000000;">;
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleLike
- ( strcool )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abcddd</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> strcool - varchar(6)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleLike
- ( strcool )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">dddabc</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> strcool - varchar(6)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleLike
- ( strcool )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abdddc</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> strcool - varchar(6)</span>
- <span style="color: #000000;"> );
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleLike
- ( strcool )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">ddabc</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> strcool - varchar(6)</span>
- <span style="color: #000000;"> )
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span><span style="color: #000000;"> dbo.SampleLike
- ( strcool )
- </span><span style="color: #0000ff;">VALUES</span> ( <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">abddc</span><span style="color: #ff0000;">‘</span> <span style="color: #008080;">--</span><span style="color: #008080;"> strcool - varchar(6)</span>
- <span style="color: #000000;"> )
- </span><span style="color: #0000ff;">COMMIT</span>;
%:0 字符以上的任意字符串。
_:任意 1 个字符。
图:前部分一致
图:中间一致
图:后部分一致
后面 ddd 是 3 个字符,所以“abc__(2个 _)”不满足条件。
BETWEEN 会在结果中包含临界值(100 和 1000)。如果不想包含临界值可以使用 < 和 >。
为了选取部分值为 NULL 的列的数据,不能使用 =,只能使用 IS NULL。
取反(不为空的数据),请使用 IS NOT NULL。
用 IN 替换上述语句:
否定形式 NOT IN:
【备注】IN 和 NOT IN 是无法选取 NULL 数据的。
IN 和 NOT IN 谓词具有其它谓词没有的用法,它的参数可以是子查询。
测试数据
- <span style="color: #008080;">--</span><span style="color: #008080;"> DDL:创建表</span>
- <span style="color: #0000ff;">CREATE</span> <span style="color: #0000ff;">TABLE</span><span style="color: #000000;"> TenpoShohin
- (tenpo_id </span><span style="color: #0000ff;">CHAR</span>(<span style="color: #800000; font-weight: bold;">4</span>) <span style="color: #808080;">NOT</span> <span style="color: #0000ff;">NULL</span><span style="color: #000000;">,
- tenpo_mei </span><span style="color: #0000ff;">VARCHAR</span>(<span style="color: #800000; font-weight: bold;">200</span>) <span style="color: #808080;">NOT</span> <span style="color: #0000ff;">NULL</span><span style="color: #000000;">,
- shohin_id </span><span style="color: #0000ff;">CHAR</span>(<span style="color: #800000; font-weight: bold;">4</span>) <span style="color: #808080;">NOT</span> <span style="color: #0000ff;">NULL</span><span style="color: #000000;">,
- suryo </span><span style="color: #0000ff;">INTEGER</span> <span style="color: #808080;">NOT</span> <span style="color: #0000ff;">NULL</span><span style="color: #000000;">,
- </span><span style="color: #0000ff;">PRIMARY</span> <span style="color: #0000ff;">KEY</span><span style="color: #000000;"> (tenpo_id, shohin_id));
- </span><span style="color: #008080;">--</span><span style="color: #008080;"> DML:插入数据</span>
- <span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000A</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">东京</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0001</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">30</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000A</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">东京</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0002</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">50</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000A</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">东京</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0003</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">15</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000B</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">名古屋</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0002</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">30</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000B</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">名古屋</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0003</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">120</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000B</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">名古屋</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0004</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000B</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">名古屋</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0006</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">10</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000B</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">名古屋</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0007</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">40</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000C</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">大阪</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0003</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000C</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">大阪</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0004</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">50</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000C</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">大阪</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0006</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">90</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000C</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">大阪</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0007</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">70</span><span style="color: #000000;">);
- </span><span style="color: #0000ff;">INSERT</span> <span style="color: #0000ff;">INTO</span> TenpoShohin (tenpo_id, tenpo_mei, shohin_id, suryo) <span style="color: #0000ff;">VALUES</span> (<span style="color: #ff0000;">‘</span><span style="color: #ff0000;">000D</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">福冈</span><span style="color: #ff0000;">‘</span>, <span style="color: #ff0000;">‘</span><span style="color: #ff0000;">0001</span><span style="color: #ff0000;">‘</span>, <span style="color: #800000; font-weight: bold;">100</span>);
图
很多时候基本上可以使用 IN 或 NOT IN 来代替该谓词。
作用:判断是否存在满足某种条件的记录。
NOT EXIST 与 EXIST 相反,不存在:
1.CASE 表达式:(条件)分歧。
2.语法
- <span style="color: #008080;">--</span><span style="color: #008080;">语法</span><span style="color: #008080;">
- --</span><span style="color: #008080;">CASE </span><span style="color: #008080;">WHEN <判断表达式> THEN <表达式></span><span style="color: #008080;">
- --</span><span style="color: #008080;"> WHEN <判断表达式> THEN <表达式></span><span style="color: #008080;">
- --</span><span style="color: #008080;"> ...</span><span style="color: #008080;">
- --</span><span style="color: #008080;"> ELSE <表达式></span><span style="color: #008080;">
- --</span><span style="color: #008080;">END</span>
判断表达式类似“键 = 值”的形式,返回值为真值(TRUE/FALSE/UNKNOW)的表达式。如果结果为真,就会返回 THEN 子句中的表达式;如果不为真,就跳转到下一条 WHEN 子句的判断中;如果到最后的 WHEN 子句都不为真,就执行最后一条 ELSE 的表达式。
下面是简化版的 CASE 表达式:
这里采用 MS SQL Server 进行验证,不保证所有的 DBMS 执行结果正确。
《SQL 基础知识梳理(一) - 数据库与 SQL》
《SQL 基础知识梳理(二) - 查询基础》
《SQL 基础知识梳理(三) - 聚合和排序》
《SQL 基础知识梳理(四) - 数据更新》
《SQL 基础知识梳理(五) - 复杂查询》
《SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式》
《SQL 基础知识梳理(七)- 集合运算》
【博主】反骨仔
【原文】http://www.cnblogs.com/liqingwen/p/6572284.html
【参考】《SQL ゼロからはじめるデータベース操作》
[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
标签:lin sub aaa closed margin 日期 就会 表达 可变