有你在真好 的个人博客
SQL中各种函数
阅读:2231 添加日期:2021/3/27 23:21:38 原文链接:https://www.toutiao.com/item/6581637301003092488/
SQL中各种函数

  1. ####################
  2. #各种各样的函数
  3. ####################
  4. CREATE TABLE SampleMath
  5. (m NUMERIC (10,3), n INTEGER, p INTEGER);
  6. INSERT INTO SampleMath(m, n, p) VALUES (500, 0, NULL);
  7. INSERT INTO SampleMath(m, n, p) VALUES (-180, 0, NULL);
  8. INSERT INTO SampleMath(m, n, p) VALUES (NULL, NULL, NULL);
  9. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 7, 3);
  10. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 5, 2);
  11. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 4, NULL);
  12. INSERT INTO SampleMath(m, n, p) VALUES (8, NULL, 3);
  13. INSERT INTO SampleMath(m, n, p) VALUES (2.27, 1, NULL);
  14. INSERT INTO SampleMath(m, n, p) VALUES (5.555,2, NULL);
  15. INSERT INTO SampleMath(m, n, p) VALUES (NULL, 1, NULL);
  16. INSERT INTO SampleMath(m, n, p) VALUES (8.76, NULL, NULL);
  17. select * from SampleMath;
  18. -- 1.常见算术函数
  19. /*
  20. 1.abs_col:ABS(m)的返回值(绝对值)
  21. 2.mod_col:MOD(n,p)的返回值(n÷p的余数)
  22. 3.round_col:ROUND(m,n)的返回值(四舍五入的结果
  23. */
  24. CREATE TABLE SampleStr
  25. (str1 VARCHAR(40), str2 VARCHAR(40), str3 VARCHAR(40));
  26. INSERT INTO SampleStr (str1, str2, str3) VALUES ('opx' ,'rt',NULL);
  27. INSERT INTO SampleStr (str1, str2, str3) VALUES ('abc' ,'def' ,NULL);
  28. INSERT INTO SampleStr (str1, str2, str3) VALUES ('山田' ,'太郎' ,'是我');
  29. INSERT INTO SampleStr (str1, str2, str3) VALUES ('aaa' , NULL ,NULL);
  30. INSERT INTO SampleStr (str1, str2, str3) VALUES (NULL ,'xyz',NULL);
  31. INSERT INTO SampleStr (str1, str2, str3) VALUES ('@!#$%' ,NULL ,NULL);
  32. INSERT INTO SampleStr (str1, str2, str3) VALUES ('ABC' ,NULL ,NULL);
  33. INSERT INTO SampleStr (str1, str2, str3) VALUES ('aBC' ,NULL ,NULL);
  34. INSERT INTO SampleStr (str1, str2, str3) VALUES ('abc太郎' ,'abc' ,'ABC');
  35. INSERT INTO SampleStr (str1, str2, str3) VALUES ('abcdefabc' , 'abc' ,'ABC');
  36. INSERT INTO SampleStr (str1, str2, str3) VALUES ('micmic' ,'i' ,'I');
  37. -- 2.常见字符串函数
  38. #1.拼接concat()
  39. SELECT str1, str2, str3, CONCAT(str1, str2, str3)
  40. AS str_concat FROM SampleStr;
  41. #2.length()
  42. #3.lower() upper()
  43. #4.REPLACE(对象字符串,替换前的字符串,替换后的字符串)
  44. #5.substring(对象字符串 FROM 截取的起始位置 FOR 截取的字符数)
  45. -- 3.常见日期函数
  46. #1.select current_date 返回当前日期
  47. #2.select current_time 返回当前时间
  48. #3.select current_timestamp;返回当前时间和日期
  49. #4.extract(日期元素 from 日期)
  50. SELECT CURRENT_TIMESTAMP,
  51. EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year,
  52. EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS month,
  53. EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS day,
  54. EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS hour,
  55. EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS minute,
  56. EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS second;
  57. -- 4.转换函数
  58. -- 类型转换&值的转换
  59. -- 类型转换
  60. #1.CAST(转换前的值 AS 想要转换的数据类型)
  61. SELECT CAST('0001' AS SIGNED INTEGER) AS int_col;
  62. SELECT CAST('2009-12-14' AS DATE) AS date_col;
  63. -- 值的转换
  64. #1. 将null转换其他值
  65. -- COALESCE(数据1,数据 2,数据 3……)
  66. -- 该函数会返回可变参数 A 中左侧开 始第1个不是 NULL的值
  67. SELECT COALESCE(NULL, 1) AS col_1,
  68. COALESCE(NULL, 'test', NULL) AS col_2,
  69. COALESCE(NULL, NULL, '2009-11-01') AS col_3;
  70. SELECT COALESCE(str2, 'NULL') FROM SampleStr;-- 将null变成了'null'
  71. select str2 from samplestr;
ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号