PostgreSql使用中遇到的问题

发布时间 2023-10-16 15:43:26作者: 风不

PostgreSql使用中遇到的问题:持续更新

注意:pq中null和空字符串是完全没啥关系的。如果要判断字段是否有值,在不确定是null或者是空字符串时,就用length(field)>0

1.如果ddl中定义的字段名是大写的,那么查询字段名就要带""  

eg:

SELECT
"LegalOrgID",
"PID",
"LegalOrgSName"
FROM
**** t

 

 

 2.如果查的字段名想要起驼峰式命名。那么就必须加双引号

eg:

 

 

3. coalesce(null,2)只能过滤null不能过滤空字符串 (coalesce函数里边的数据类型必须一直。像这种SELECT COALESCE( '', '2', 2 );会报错)

eg:

 

 

 4. COALESCE ( field, CURRENT_TIMESTAMP)会报错:COALESCE types integer and timestamp with time zone cannot be matched

  解决办法:要么用case when 要么不带时区  COALESCE ( field, CURRENT_TIMESTAMP :: TIMESTAMP WITHOUT TIME ZONE )

  注意 case when 时 CURRENT_TIMESTAMP要写后边,要不然会报错 CASE WHEN field IS NULL THEN CURRENT_TIMESTAMP ELSE first_warn_push_time END; 这样会报错。要把CURRENT_TIMESTAMP写到ELSE后边