SQL中各种函数
- ####################
- #各种各样的函数
- ####################
- CREATE TABLE SampleMath
- (m NUMERIC (10,3), n INTEGER, p INTEGER);
- INSERT INTO SampleMath(m, n, p) VALUES (500, 0, NULL);
- INSERT INTO SampleMath(m, n, p) VALUES (-180, 0, NULL);
- INSERT INTO SampleMath(m, n, p) VALUES (NULL, NULL, NULL);
- INSERT INTO SampleMath(m, n, p) VALUES (NULL, 7, 3);
- INSERT INTO SampleMath(m, n, p) VALUES (NULL, 5, 2);
- INSERT INTO SampleMath(m, n, p) VALUES (NULL, 4, NULL);
- INSERT INTO SampleMath(m, n, p) VALUES (8, NULL, 3);
- INSERT INTO SampleMath(m, n, p) VALUES (2.27, 1, NULL);
- INSERT INTO SampleMath(m, n, p) VALUES (5.555,2, NULL);
- INSERT INTO SampleMath(m, n, p) VALUES (NULL, 1, NULL);
- INSERT INTO SampleMath(m, n, p) VALUES (8.76, NULL, NULL);
- select * from SampleMath;
- -- 1.常见算术函数
- /*
- 1.abs_col:ABS(m)的返回值(绝对值)
- 2.mod_col:MOD(n,p)的返回值(n÷p的余数)
- 3.round_col:ROUND(m,n)的返回值(四舍五入的结果
- */
- CREATE TABLE SampleStr
- (str1 VARCHAR(40), str2 VARCHAR(40), str3 VARCHAR(40));
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('opx' ,'rt',NULL);
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('abc' ,'def' ,NULL);
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('山田' ,'太郎' ,'是我');
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('aaa' , NULL ,NULL);
- INSERT INTO SampleStr (str1, str2, str3) VALUES (NULL ,'xyz',NULL);
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('@!#$%' ,NULL ,NULL);
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('ABC' ,NULL ,NULL);
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('aBC' ,NULL ,NULL);
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('abc太郎' ,'abc' ,'ABC');
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('abcdefabc' , 'abc' ,'ABC');
- INSERT INTO SampleStr (str1, str2, str3) VALUES ('micmic' ,'i' ,'I');
- -- 2.常见字符串函数
- #1.拼接concat()
- SELECT str1, str2, str3, CONCAT(str1, str2, str3)
- AS str_concat FROM SampleStr;
- #2.length()
- #3.lower() upper()
- #4.REPLACE(对象字符串,替换前的字符串,替换后的字符串)
- #5.substring(对象字符串 FROM 截取的起始位置 FOR 截取的字符数)
- -- 3.常见日期函数
- #1.select current_date 返回当前日期
- #2.select current_time 返回当前时间
- #3.select current_timestamp;返回当前时间和日期
- #4.extract(日期元素 from 日期)
- SELECT CURRENT_TIMESTAMP,
- EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year,
- EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS month,
- EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS day,
- EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS hour,
- EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS minute,
- EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS second;
- -- 4.转换函数
- -- 类型转换&值的转换
- -- 类型转换
- #1.CAST(转换前的值 AS 想要转换的数据类型)
- SELECT CAST('0001' AS SIGNED INTEGER) AS int_col;
- SELECT CAST('2009-12-14' AS DATE) AS date_col;
- -- 值的转换
- #1. 将null转换其他值
- -- COALESCE(数据1,数据 2,数据 3……)
- -- 该函数会返回可变参数 A 中左侧开 始第1个不是 NULL的值
- SELECT COALESCE(NULL, 1) AS col_1,
- COALESCE(NULL, 'test', NULL) AS col_2,
- COALESCE(NULL, NULL, '2009-11-01') AS col_3;
- SELECT COALESCE(str2, 'NULL') FROM SampleStr;-- 将null变成了'null'
- select str2 from samplestr;
