IF(expr1,expr2,expr3)
SELECT IF(1<2,'yes ','no');
#如果 1<2 满足返回 ‘yes’ 否则 ‘no’,也可以用于修改
UPDATE salary SET sex =IF(Sex = 'm', 'f', 'm');
# sex = 'm' 改为 ‘f’ , sex = 'f' 改为 ‘m’
with
with xx_v1 as(
sql查询语句1
),
xx_v2 as(
sql查询语句2
),
xx_vn as(
sql查询语句n
)
select * from v3
to_date --字符串转时间
SELECT to_date('2023-11-02','yyyy-mm-dd')
求2,-3.3和-33的绝对值,输入语句如下:
SELECT ABS(2), ABS(-3.3), ABS(-33);
返回圆周率值,输入语句如下:
SELECT pi();
求9,40和-49的二次平方根,输入语句如下:
SELECT SQRT(9), SQRT(40);
对MOD(31,8),MOD(234, 10),MOD(45.5,6)进行求余运算,输入语句如下:
SELECT MOD(31,8),MOD(234, 10),MOD(45.5,6);
使用CEIL和CEILING函数返回最小整数,输入语句如下:
SELECT CEIL(-3.35),CEILING(3.35);
FLOOR(x)返回不大于x的最大整数值,返回值转化为一个BIGINT。
使用FLOOR函数返回最大整数,输入语句如下:
SELECT FLOOR(-3.35), FLOOR(3.35);
使用ROUND(x)函数对操作数进行四舍五入操作,输入语句如下:
SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);
使用ROUND(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y位,输入语句如下:
SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1), ROUND (232.38,-2);
使用SIGN函数返回参数的符号,输入语句如下:
SELECT SIGN(-21),SIGN(0), SIGN(21);
使用POW和POWER函数进行乘方运算,输入语句如下:
SELECT POW(2,2), POWER(2,2),POW(2,-2), POWER(2,-2);
使用EXP函数计算e的乘方,输入语句如下:
SELECT EXP(3),EXP(-3),EXP(0);
使用LOG(x)函数计算自然对数,输入语句如下:
SELECT LOG(3);
使用RADIANS将角度转换为弧度,输入语句如下:
SELECT RADIANS(90),RADIANS(180);
使用DEGREES将弧度转换为角度,输入语句如下:
SELECT DEGREES(PI()), DEGREES(PI() / 2);
使用SIN函数计算正弦值,输入语句如下:
SELECT SIN(1), ROUND(SIN(PI()));
使用ASIN函数计算反正弦值,输入语句如下:
SELECT ASIN(0.8414709848078965);
使用COS函数计算余弦值,输入语句如下:
SELECT COS(0),COS(PI()),COS(1);
使用ACOS计算反余弦值,输入语句如下:
SELECT ACOS(1),ACOS(0), ROUND(ACOS(0.5403023058681398));
使用TAN函数计算正切值,输入语句如下:
SELECT TAN(0.3), ROUND(TAN(PI()/4));
使用ATAN函数计算反正切值,输入语句如下:
SELECT ATAN(0.30933624960962325), ATAN(1);
使用COT()函数计算正切值,输入语句如下,
SELECT COT(0.3), 1/TAN(0.3),COT(PI() / 4);
更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。
使用CHAR_LENGTH函数计算字符串字符个数,输入语句如下:
SELECT CHAR_LENGTH('date'), CHAR_LENGTH('egg');
使用LENGTH函数计算字符串长度,输入语句如下:
SELECT LENGTH('date'), LENGTH('egg');
使用CONCAT函数连接字符串,输入语句如下:
SELECT CONCAT('PostgreSQL', '9.15'),CONCAT('Postgre',NULL, 'SQL');
使用CONCAT_WS函数连接带分隔符的字符串,输入语句如下:
SELECT CONCAT_WS('-', '1st','2nd', '3rd'), CONCAT_WS('*', '1st', NULL, '3rd');
使用LEFT函数返回字符串中左边的字符,输入语句如下:
SELECT LEFT('football', 5);
使用RIGHT函数返回字符串中右边的字符,输入语句如下:
SELECT RIGHT('football', 4);
使用LPAD函数对字符串进行填充操作,输入语句如下:
SELECT LPAD('hello',4,'??'), LPAD('hello',10,'??');
使用LPAD函数对字符串进行填充操作,输入语句如下:
SELECT RPAD('hello',4,'?'), RPAD('hello',10,'?');
使用LTRIM函数删除字符串左边的空格,输入语句如下:
SELECT '( book )',CONCAT('(',LTRIM(' book '),')');
使用LTRIM函数删除字符串右边的空格,输入语句如下:
SELECT '( book )',CONCAT('(', RTRIM (' book '),')');
使用TRIM函数删除指定字符串两端的空格,输入语句如下:
SELECT '( book )',CONCAT('(', TRIM(' book '),')');
使用TRIM(s1 FROM s)函数删除字符串中两端指定的字符,输入语句如下:
SELECT TRIM('xy' FROM 'xyboxyokxyxy') ;
使用REPEAT函数重复生成相同的字符串,输入语句如下:
SELECT REPEAT('PostgreSQL', 3);
使用REPLACE函数进行字符串替代操作,输入语句如下:
SELECT REPLACE('xxx.PostgreSQL.com', 'x', 'w');
使用SUBSTRING函数获取指定位置处的子字符串,输入语句如下:
SELECT SUBSTRING('breakfast',5) AS col1,
SUBSTRING('breakfast',5,3) AS col2,
SUBSTRING('lunch', -3) AS col3,
使用POSITION函数查找字符串中指定子字符串的开始位置,输入语句如下:
SELECT POSITION('ball' IN 'football');
使用REVERSE函数反转字符串,输入语句如下:
SELECT REVERSE('abc');
更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。
使用日期函数获取系统当期日期,输入语句如下:
SELECT CURRENT_DATE;
使用时间函数获取系统当期日期(返回时带时区),输入语句如下:
SELECT CURRENT_TIME;
使用时间函数获取系统当期日期(返回时不带时区),输入语句如下:
SELECT LOCALTIME;
使用日期时间函数获取当前系统日期和时间,输入语句如下:
SELECT CURRENT_TIMESTAMP,LOCALTIMESTAMP,NOW();
使用EXTRACT函数从月份中提取日期,输入语句如下:
SELECT EXTRACT(DAY FROM TIMESTAMP '2012-09-10 10:18:40');
使用EXTRACT函数从月份中提取月份,输入语句如下:
SELECT EXTRACT(MONTH FROM TIMESTAMP '2012-09-10 10:18:40');
使用EXTRACT函数从月份中提取年份,输入语句如下:
SELECT EXTRACT(YEAR FROM TIMESTAMP '2012-09-10 10:18:40');
使用EXTRACT函数查询指定日期是一年中的第几天,输入语句如下:
SELECT EXTRACT(DOY FROM TIMESTAMP '2012-09-10 10:18:40');
使用EXTRACT函数查询指定日期是一周中的星期几,输入语句如下:
SELECT EXTRACT(DOW FROM TIMESTAMP '2012-09-10 10:18:40');
使用EXTRACT函数查询指定日期是该年的第几季度(1-4),输入语句如下:
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2012-09-10 10:18:40');
date_trunc --获取时间的当时时间
可用于按时间分组;比如按照时间月分组
示例:
SELECT DATE_TRUNC('month', date_column) as month, COUNT(*) as count
FROM table_name
GROUP BY month
ORDER BY month;
SELECT date_trunc('year',now())
##获取当前年:2023-01-01 00:00:00+00
SELECT date_trunc('month',now())
##获取当前月:2023-12-01 00:00:00+00
SELECT date_trunc('week',now())
##获取当前周:2023-12-04 00:00:00+00
SELECT date_trunc('day',now())
##获取当前日:2023-12-06 00:00:00+00
小时:hour
分钟:minute
秒:second
计算指定日期加上间隔天数后的结果,输入语句如下:
SELECT DATE '2019-09-28' + integer '10';
计算指定日期加上间隔小时后的结果,输入语句如下:
SELECT DATE '2012-09-28' + interval '3 hour';
计算指定日期加上指定时间后的结果,输入语句如下:
SELECT DATE '2012-09-28' + time '06:00';
计算指定日期和时间加上间隔时间后的结果,输入语句如下:
SELECT TIMESTAMP '2012-09-28 02:00:00' + interval '10 hours';
计算指定日期之间的间隔天数,输入语句如下:
SELECT date '2012-11-01' - date '2012-09-10';
计算指定日期减去间隔天数后的结果,输入语句如下:
SELECT DATE '2012-09-28' - integer '10';
计算整数与天数相乘的结果,输入语句如下:
SELECT 15 * interval '2 day';
计算整数与秒数相乘的结果,输入语句如下:
SELECT 50 * interval '2 second';
计算小时数与整数相乘的结果,输入语句如下:
SELECT interval '1 hour' / integer '2';
更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。
意思是如果expr的值等于某个vn,则返回对应位置THEN后面的结果,如果与所有值都不相等,则返回ELSE后面的rn。
使用CASE value WHEN语句执行分支操作,输入语句如下:
SELECT CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
使用CASE WHEN语句执行分支操作,输入语句如下:
SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END;
查看当前PostgreSQL版本号,输入语句如下:
SELECT VERSION();
获取当前登陆用户名称,输入语句如下:
SELECT USER, CURRENT_USER;
使用MD5函数加密字符串,输入语句如下:
SELECT MD5 ('mypwd');
使用ENCODE加密字符串,输入语句如下:
SELECT ENCODE('secret','hex'), LENGTH(ENCODE('secret','hex'));
使用DECODE函数解密被ENCODE加密的字符串,输入语句如下:
SELECT DECODE(ENCODE('secret','hex'),'hex');
CAST(x, AS type)函数将一个类型的值转换为另一个类型的值。
使用CAST函数进行数据类型的转换,将整数类型100转成两位字符串的类型10,SQL语句如下:
SELECT CAST(100 AS CHAR(2));