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(对象字符串,替换前的字符串,替换后的字符串)
   insert(对象字符串,起始位置,替换长度,替换的后的字符串)
#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;

猜你喜欢

转载自blog.csdn.net/kylin_learn/article/details/81142585