当前位置:   article > 正文

【postgresql】一些函数记录_postgresql decode

postgresql decode

1、coalesce函数:合并,coalesce(值1,值2,值3……),返回第一个不为null的值;

2、coalesce和ifnull的区别,ifnull只有两个参数,返回第一个不为null的参数

3、if和casewhen的区别:case 字段 when 条件 then 结果1 else 结果2  end

在score表中,sex为1表示男性,sex=0表示女性,查询时转换成汉字显示。

语句为:case score when 0 then '女' else '男'  end

3、case when 条件表达式:千万不要忘记写end

  1. CASE
  2. WHEN condition THEN result1 ELSE result2
  3. END
  4. SELECT name,score,(CASE 
  5.     WHEN score>=90 THEN '优秀' 
  6.     WHEN score>=80 THEN '良好' 
  7.     WHEN score>=60 THEN '及格' 
  8.     ELSE '不及格' END) level 
  9. FROM score
  10. select name,score,
  11. sum(case when sex = 0 then 1 else 0 end) as '女生人数',
  12. sum(case when sex = 1 then 1 else 0 end) as '男生人数',
  13. sum(case when score >60 and sex = 0 then 1 else 0 end) as '女生及格人数',
  14. sum(case when score > 60 and sex = 1 then 1 else 0 end) as '男生及格人数'
  15. from score

4、和聚合函数一起使用:统计女生人数,统计男生人数

5、nvl函数:nvl(表达式1,表达式2),如果表达式1不为空,则返回表达式1,如果表达式1为空,则返回表达式2,表达式1和2必须是同一种数据类型,可以是数字型,字符型,和日期型,字段2


数字型:NVL(comm,1)
字符型:NVL(TO_CHAT(comm),‘No Commission’)
日期型:NVL(hiredate,‘31-DEC-99’)

例如: NVL(comm,1)
如果comm为空,就返回1。如果 comm 不为空(null),就返回表达式 comm的值;
 

6、decode函数:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

比如,decode(Name,'其他其他',1,'其他',15,'其他的',16) as type,这个比casewhen更简单,但是casewhen更加灵活

7、navicat 下自动插入数据更新时间,设置的数据类型一定要是timestamp,函数可以是now,也可以是 current _stamp或者current_time

时间函数:

select now();
select CURRENT_DATE;
select CURRENT_TIME;
select CURRENT_TIMESTAMP;
select CURRENT_TIME(precision);
select CURRENT_TIMESTAMP(precision);
select LOCALTIME;
select LOCALTIMESTAMP;
select LOCALTIME(precision);
select LOCALTIMESTAMP(precision);

8、create table tmp_result_01  as select xxx把查询结果放入新表中

9、group by 1

10、update更新的时候发现了一个错误:这个报错说找不到a列,看了很久不知道a列是啥,就是不能set那个表的列,不用加a.,不然在表里找不到这个列,后面的可以用a.

这次还犯了一个错误,就是update那个表,必须是这个表的列,一开始连这个也弄错了,还有注意引用表的时候尽量少用join,不然就容易搞混,直接引用表,然后用where条件来连接,

11、自连接查询重复数据 

  1. select a.*,b.*
  2. from table_1 a left join table_1 b
  3. on a.name = b.name
  4. -- 如果只有以上的步骤会出现俩条重复数据,用下面的编号去限制一下,就可以去重
  5. where a.id>b.i

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号