SQL几种常用的函数
函数的种类:
- 算数函数(数值计算的函数)
- 字符串函数(字符串操作的函数)
- 日期函数(用来进行日期操作的函数)
- 转换函数(用来转换数据类型和值的函数)
- 聚合函数(用来进行数据聚合的函数)
算数函数(+-*/):
1.ABS()——函数(计算绝对值)
select m,abs(m) as abs_col from SampleMath;
2.mod()——求余函数
-- 计算n/p的余数(SQL Server不支持此函数)
select n,p, mod(n,p) as mod_col from SampleMath;
3.round()——四舍五入函数,round(对象数值,保留的小数的位数)
-- 对m列的数值进行n列位数的四舍五入处理。
select m, n , round(m,n) as round_col from SampleMath;
字符串函数
1.|| ——字符串拼接(此函数无法在mysql及sql server中运行)
select str1, str2, str1||str2 as str_concat from SampleStr;
2.length(字符串)——字符传长度函数(确认字符串中包含多少个字符)
select str1, length(str1) as len_str from SampleStr;
3.lower(字符串)——小写转换,只能针对英文字母使用
select str1, lower(str1) as low_str
from SampleStr
where str1 in ('ABC', 'aBC', 'abc', '山田');
4.replace(对象字符串,替换前的字符串,替换后的字符串)——将字符串替换成其他字符串
-- 如果str1包含str2,则将str1中的str2替换成str3
select str1, str2, str3, replace(str1, str2, str3) as rep_str
from SampleStr;
5.substring函数——字符串截取(是适用于postgresql 和 mysql)
-- substring(对象字符串 from 截取的起始位置 for 截取的字符串)
-- 截取出str1中的第三第四个字符串
select str1, substring(str1 from 3 for 2) as sub_str from SampleStr;
6.upper(字符串)——小写转大写
SELECT str1,UPPER(str1) AS up_str
FROM SampleStr
WHERE str1 IN ('ABC', 'aBC', 'abc', '山田');
日期函数
1.CURRENT_DATE ——当前日期(返回当前日期)
-- mysql写法
select CURRENT_DATE;
-- oracle写法
select CURRENT_DATE from dual;
2.CURRENT_TIME ——当前时间
select CURRENT_TIME;
3.CURRENT_TIMESTAMP ——当前日期和时间
select CURRENT_TIMESTAMP;
4.EXTRACT(unit FROM date)——截取日期元素,截取出日期的一部分(年/月/日小时/秒等)
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;
转换函数
1.CAST()——类型转换
-- CASE(转换前的值 AS 转换后的数据类型)
select CAST('00001' AS SIGNED INTEGER) AS int_col;
2.将字符转换为日期类型
select cast('2018-11-12' AS DATE) AS sate_col;
3.COALESC()E——将null转换为其他值
COALESCE(参数1,参数2,参数3.....)参数个数时可变的,可以无限个。
--SQL Server, PostgreSQL, MySQL
SELECT COALESCE(NULL, 1) AS col_1,
COALESCE(NULL, 'test', NULL) AS col_2,
COALESCE(NULL, NULL, '2009-11-01') AS col_3;
-- 将字段str2中的null值转成字符串为null的值。
select COALESCE(str2,'null') from samplestr;
(expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。
建表语句
-- DDL:创建表
CREATE TABLE SampleMath
(m NUMERIC (10,3),
n INTEGER,
p INTEGER);
-- DML:插入数据
START TRANSACTION;
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);
COMMIT;
--MySQL
--DDL:创建表
CREATE TABLE SampleStr
(str1 VARCHAR(40),
str2 VARCHAR(40),
str3 VARCHAR(40));
--DML:插入数据
START TRANSACTION;
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');
COMMIT;
SQL几种常用的函数的更多相关文章
- 剑指Offer——常用SQL语句、存储过程和函数
剑指Offer--常用SQL语句.存储过程和函数 常用SQL语句 1.在MySQL数据库建立多对多的数据表关系 2.授权.取消授权 grant.revoke grant select, insert, ...
- 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载
浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...
- sql server 常用的函数小汇
摘录些许sqlserver 常用到的一些函数,便于日常学习使用 一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但 ...
- SQL点滴30—SQL中常用的函数
原文:SQL点滴30-SQL中常用的函数 该文章转载自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 别人的总结,很 ...
- SQL Server 中截取字符串常用的函数
SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要 ...
- php八种常用函数
八种常用的数学函数: ① abs(x):求绝对值 ② ceil(x),floor(x):向上/下取最接近的整数 ③ cos(x),sin(x),tan(x):三角函数 ④ min(),max( ...
- Sql server 经典常用函数
..STUFF()用另一子串替换字符串指定位置.长度的子串.STUFF (<character_expression1>, <start_ position>, <len ...
- 【SQL】四种排序开窗函数
一 .简单了解什么是开窗函数 什么是开窗函数,开窗函数有什么作用,特征是什么? 所谓开窗函数就是定义一个行为列,简单讲,就是在你查询的结果上,直接多出一列值(可以是聚合值或是排序号),特征就是带有ov ...
- sql常用格式化函数及字符串函数
一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') YYYY:年份 MM:月份号(01-12) ...
随机推荐
- AWR and ADDM
The Automatic Workload Repository Oracle collect a vast amount of statistics regarding the performan ...
- lua中的metatable和metamethod
--元表和元方法给lua里的值设定一些操作,让我们可以对这些操作自定义 --创建一个新的table变量时,它是不存在元表的 --在Lua中,只能设置table的元表,其他类型的值的元表,只能通过C代码 ...
- VS2012调试执行,网页打不开
360修复漏洞篇 TODO 修复了漏洞.vs2012在firefox和ie中都打不开 解决思路:360漏洞修复→已安装漏洞→卸载刚刚安装的漏洞 就可以解决 忽略漏洞 正常打开.
- 【干货】Kafka 事务特性分析
特性背景 消息事务是指一系列的生产.消费操作可以要么都完成,要么都失败,类似数据库的事务.这个特性在0.10.2的版本是不支持的,从0.11版本开始才支持.华为云DMS率先提供Kafka 1.1.0的 ...
- Xamarin nuget package update 错误
update xamarin.Forms包时出现错误: 'The specified path, file name, or both are too long. The fully qualifie ...
- Windows的所有风格与扩展风格
SetWindowLonghttp://msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).aspxWindow St ...
- Android showDialog时报错requestFeature() must be called before adding content
View view = View.inflate(this, R.layout.layout_dialog, null); AlertDialog alertDialog = new AlertDia ...
- IOS系统控件高度
以下是常见的几种控件的高度.Statusbar,Navigationbar和Tabbar的宽度极其图标大小. 下表是更为详细的参数,包括了Statusbar,Navigationbar.Tabbar. ...
- 让DIV在屏幕上下左右居中
转自:http://blog.sina.com.cn/s/blog_65d41dff0100v0iz.html 其实解决的思路是这样的:首们需要position:absolute;绝对定位.而层的定位 ...
- 特征变化--->特征向量中部分特征到类别索引的转换(VectorIndexer)
VectorIndexer: 倘若所有特征都已经被组织在一个向量中,又想对其中某些单个分量进行处理时,Spark ML提供了VectorIndexer类来解决向量数据集中的类别性特征转换. 通过为其提 ...