基础知识梳理,小数点后保留二人

壹.数值4舍5入,小数点后保留2位

1.数值4舍伍入,小数点后保留3位

一.round()
函数是四舍5入用,第三个参数是大家要被操作的多少,第一个参数是设置我们肆舍五入之后小数点后显得几个人。

SQL 基础知识梳理(6)-  函数、谓词、CASE 表达式

997755.com澳门葡京 1

 

round()
函数是4舍5入用,第二个参数是大家要被操作的数码,第3个参数是设置大家4舍5入之后小数点后出示叁位。

round()
函数是四舍伍入用,第一个参数是大家要被操作的多少,第二个参数是安装我们四舍5入之后小数点后出示3位。

二.numeric
函数的三个参数,第三个代表数据长度,第贰个参数表示小数点后位数。

目录

  • 函数
  • 谓词
  • CASE 表达式

 

numeric 函数的二个参数,第三个象征数据长度,第一个参数表示小数点后位数。

numeric 函数的三个参数,第2个象征数据长度,第二个参数表示小数点后位数。

例如:

一、函数

  一.函数:输入某一值获得相应输出结果的效率,输入值称为“参数”,输出值称为“重临值”。

基础知识梳理,小数点后保留二人。 

  2.函数的门类:

  (1)算术函数 – 数值总括

  (2)字符串函数 – 字符串操作

  (3)日期函数 – 日期操作

  (四)转变函数 – 转变数据类型

  (5)聚合函数 – 数据聚合

 

演示如下:

示范如下:

  select   cast(round(12.5,2)   as   numeric(5,2))  结果:12.50

  叁.算术函数(加、减、乘、除):+、-、*、/

  【备注】数据类型
NUMBESportageIC(全部位数,小数位数)能够钦命数值的分寸。

997755.com澳门葡京 2997755.com澳门葡京 3

CREATE TABLE SampleMath
    (
      m NUMERIC(10, 3) ,
      n INTEGER ,
      p INTEGER
    );

BEGIN TRAN;

INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( 500, -- m - numeric
          0, -- n - integer
          NULL  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( -180, -- m - numeric
          0, -- n - integer
          NULL  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( NULL, -- m - numeric
          NULL, -- n - integer
          NULL  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( NULL, -- m - numeric
          7, -- n - integer
          3  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( NULL, -- m - numeric
          5, -- n - integer
          2  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( NULL, -- m - numeric
          4, -- n - integer
          NULL  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( 8, -- m - numeric
          NULL, -- n - integer
          3  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( 2.27, -- m - numeric
          1, -- n - integer
          NULL  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( 5.555, -- m - numeric
          2, -- n - integer
          NULL  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( NULL, -- m - numeric
          1, -- n - integer
          NULL  -- p - integer
          );
INSERT INTO dbo.SampleMath
        ( m, n, p )
VALUES  ( 8.76, -- m - numeric
          NULL, -- n - integer
          NULL  -- p - integer
          );

COMMIT;

早先化数据

  (一)ABS –
相对值:不思量数值的标识,表示2个数到原点距离的数值。

  绝对值的一个钱打二十七个结方式:0
和正数的相对化值正是其本身,负数的断然值正是去掉符号后的结果。

--语法: ABS(数值)

997755.com澳门葡京 4

图:第 2 行:-180 的相对值为 180

   

  (2)MOD –
取余、求余

--语法: MOD(被除数,除数)

  【备注】Oracle、DB贰、PostgreSQL、MySQL
协助该函数,而 SQL Server 不补助该函数,所以那里用“%”替代。

997755.com澳门葡京 5

 

  (三)ROUND –
四舍伍入

   假诺钦点四舍伍入的位数为 1,那么会对小数点第 2位实行肆舍伍入;假如内定位数为 贰,那么就会对第 二位进行四舍五入。997755.com澳门葡京 6

 

-- 4.56
select cast(round(4.564,2) as numeric(5,2));
-- 4.57
select cast(round(4.565,2) as numeric(5,2));
-- 4.57
select cast(round(4.566,2) as numeric(5,2));
-- 将 numeric 转换为数据类型 numeric 时出现算术溢出错误。1234.567 长度为7,大于5,故报错。
select cast(round(1234.567,2)  as numeric(5,2));
-- 1234.57
select cast(round(1234.567,2)  as numeric(18,2));
-- 4.56
select cast(round(4.564,2) as numeric(5,2));
-- 4.57
select cast(round(4.565,2) as numeric(5,2));
-- 4.57
select cast(round(4.566,2) as numeric(5,2));
-- 将 numeric 转换为数据类型 numeric 时出现算术溢出错误。1234.567 长度为7,大于5,故报错。
select cast(round(1234.567,2)  as numeric(5,2));
-- 1234.57
select cast(round(1234.567,2)  as numeric(18,2));

  select   cast(round(12.555,2)   as   numeric(5,2))  结果:12.56

   四.字符串函数

997755.com澳门葡京 7997755.com澳门葡京 8

CREATE TABLE SampleStr
(
    str1 VARCHAR(40),
    str2 VARCHAR(40),
    str3 VARCHAR(40)
)

BEGIN TRAN;
INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'opx', -- str1 - varchar(40)
          'rt', -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'abc', -- str1 - varchar(40)
          'def', -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'aaa', -- str1 - varchar(40)
          NULL, -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'aaa', -- str1 - varchar(40)
          NULL, -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( NULL, -- str1 - varchar(40)
          'xyz', -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( '@!#$%', -- str1 - varchar(40)
          NULL, -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'ABC', -- str1 - varchar(40)
          NULL, -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'aBC', -- str1 - varchar(40)
          NULL, -- str2 - varchar(40)
          NULL  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'abc太郎', -- str1 - varchar(40)
          'abc', -- str2 - varchar(40)
          'ABC'  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'abcdefabc', -- str1 - varchar(40)
          'abc', -- str2 - varchar(40)
          'ABC'  -- str3 - varchar(40)
          );

INSERT INTO dbo.SampleStr
        ( str1, str2, str3 )
VALUES  ( 'micmic', -- str1 - varchar(40)
          'i', -- str2 - varchar(40)
          'T'  -- str3 - varchar(40)
          );

COMMIT;

初叶化数据

  (1)拼接:+

997755.com澳门葡京 9

 

  (二)LEN –
字符串长度

--语法: LEN(字符串)

997755.com澳门葡京 10

 

  (3)LOWE奔驰G级 –
小写转变

--语法:LOWER(字符串)

997755.com澳门葡京 11

 

  (4)REPLACE –
字符串的交替

--语法:REPLACE(对象字符串, 替换前的字符串, 替换后的字符串)

997755.com澳门葡京 12

 

  (5)SUBST昂CoraING –
字符串的截取

--语法:SUBSTRING(对象字符串,截取的起始位置,截取的字符数)

997755.com澳门葡京 13

 

  (6)UPPECR-V –
大写转变

--语法:UPPER(字符串)

997755.com澳门葡京 14

 

 

 

  select   cast(round(122.5255,2)   as   numeric(5,2)) 结果:122.53

   伍.日期函数

  (一)获取当前些天期和时间:

997755.com澳门葡京 15

 

  (二)DATEPART
– 截取日期成分

997755.com澳门葡京 16

 

二.SQL从数据库中自便询问数据

  select   cast(round(1222.5255,二)   as   numeric(伍,二)) 结果:报错了!
原因是:122二.525五,整数位是4,小数位是2,加起来4+二=陆,超出了numeric设置的七人,所认为了确定保证,能够增减numeric的参数,举个例子numeric(20,二)。

  陆.改造函数

  (1)CAST – 类型调换

997755.com澳门葡京 17

 

  (贰)COALESCE – 将 NULL
转变为别的值

  效能:再次回到可变参数中左侧开始的首先个不是 NULL
的值(参数是可变的,即能够个数是极致的)。

--语法:COALESCE(数据1, 数据2, 数据3 ...)

997755.com澳门葡京 18

997755.com澳门葡京 19

 

一般的话,比如在表A中任性询问5条数据,语句如下:

二、谓词

  1.谓词:再次来到值为真值(TRUE/FALSE/UNKNOWN)的函数。

 

SELECT TOP 5  * FROM A ORDER BY NEWID()

  2.LIKE – 字符串的有个别雷同查询

  【备注】=
运算符:字符串完全壹致。

997755.com澳门葡京 20997755.com澳门葡京 21

CREATE TABLE SampleLike
(
strcool VARCHAR(6) NOT NULL,
PRIMARY KEY(strcool)
)

BEGIN TRAN;
INSERT INTO dbo.SampleLike
        ( strcool )
VALUES  ( 'abcddd'  -- strcool - varchar(6)
          );

INSERT INTO dbo.SampleLike
        ( strcool )
VALUES  ( 'dddabc'  -- strcool - varchar(6)
          );

INSERT INTO dbo.SampleLike
        ( strcool )
VALUES  ( 'abdddc'  -- strcool - varchar(6)
          );

INSERT INTO dbo.SampleLike
        ( strcool )
VALUES  ( 'ddabc'  -- strcool - varchar(6)
          )

INSERT INTO dbo.SampleLike
        ( strcool )
VALUES  ( 'abddc'  -- strcool - varchar(6)
          )

COMMIT;

997755.com澳门葡京 ,开首化数据

  %:0 字符以上的自便字符串。

  _:任意 1 个字符。

997755.com澳门葡京 22

图:前某些同样

997755.com澳门葡京 23

图:中间1致

997755.com澳门葡京 24

图:后有的同等

997755.com澳门葡京 25

  后面 ddd 是 3 个字符,所以“abc__(2个 _)”不知足条件。

 

参考:

   三.BETWEEN – 范围查询

997755.com澳门葡京 26

 

  BETWEEN 会在结果中隐含临界值(十0 和
一千)。若是不想包蕴临界值能够动用 < 和 >。

997755.com澳门葡京 27

 

 

  4.IS NULL、IS NOT NULL – 判定是还是不是为 NULL

  为了采纳部分值为 NULL 的列的数量,无法应用 =,只可以选取 IS NULL。

997755.com澳门葡京 28

 

  取反(不为空的多少),请使用 IS NOT NULL。

997755.com澳门葡京 29

 

  伍.IN – OQashqai 的简便用法

997755.com澳门葡京 30

 

  用 IN 替换上述语句:

997755.com澳门葡京 31

 

  否定形式 NOT IN:

997755.com澳门葡京 32

 

   【备注】IN 和 NOT
IN 是力不从心采用 NULL 数据的。

  

  陆.使用子查询作为 IN 谓词的参数

  IN 和 NOT IN 谓词具备其它谓词没有的用法,它的参数能够是子查询。 

997755.com澳门葡京 33997755.com澳门葡京 34

-- 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);

测试数据

997755.com澳门葡京 35

997755.com澳门葡京 36

 

  7.EXIST 

  繁多时候基本上能够应用 IN 或 NOT IN 来替代该谓词。

  功效:判别是还是不是存在满意某种条件的笔录。

997755.com澳门葡京 37

997755.com澳门葡京 38

 

  NOT EXIST 与 EXIST 相反,不存在:

997755.com澳门葡京 39

 

三、CASE 表达式

   1.CASE
表达式:(条件)分歧。

 

   2.语法

--语法
--CASE WHEN <判断表达式> THEN <表达式>
--     WHEN <判断表达式> THEN <表达式>
--     ...
--     ELSE <表达式>
--END

  决断表明式类似“键 =
值”的款式,重返值为真值(TRUE/FALSE/UNKNOW)的表明式。如若结果为真,就会回到
THEN 子句中的说明式;假若不为真,就跳转到下一条 WHEN
子句的论断中;假如到最终的 WHEN 子句都不为真,就实行最终一条 ELSE
的表明式。

997755.com澳门葡京 40

 

  下边是简化版的 CASE 表明式:

997755.com澳门葡京 41

 

  3.行转列

997755.com澳门葡京 42

 

997755.com澳门葡京 43

 

备注

  那里运用 MS SQL Server 实行表明,不保障具有的 DBMS 施行结果正确。

 

《SQL 基础知识梳理》体系

  《SQL 基础知识梳理(一) – 数据库与
SQL》

  《SQL 基础知识梳理(2) –
查询基础》

  《SQL 基础知识梳理(叁) –
聚合和排序》

  《SQL 基础知识梳理(4) –
数据更新》

  《SQL 基础知识梳理(伍) –
复杂查询》

  《SQL 基础知识梳理(6)- 函数、谓词、CASE
表明式》

  《SQL 基础知识梳理(7)-
集结运算》

 

 


【博主】反骨仔

【原文】

【参考】《SQL
ゼロからはじめるデータベース操作》

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website