错误: 函数 round(double precision, integer) 不存在 LINE 6: ROUND( SUM ( COALESCE ( jzmj, 0 ) ) / 10000, 2 ) AS totalar... ^ HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.
时间: 2024-03-09 12:50:58 浏览: 15
这个错误提示是因为在PostgreSQL中,round()函数的参数与MySQL中的round()函数略有不同。在PostgreSQL中,round()函数的第一个参数是数值类型,第二个参数是整数类型,表示要保留的小数位数。因此,在您的语句中,需要将第二个参数2改为整数类型,即2::integer。修改后的语句如下所示:
```
SELECT LEFT(jdxz, 9) AS street,
LEFT(jdxz, 6) AS qx,
'swqc' AS TYPE,
COUNT(*) AS totalnum,
ROUND(SUM(COALESCE(jzmj, 0))/10000, 2)::numeric AS totalarea,
NOW() AS updatedate
FROM swqc_house_base_info
WHERE jdxz IS NOT NULL
AND deletemark = '0'
AND (yhwt = '1' OR wfjs = '1' OR wfwgsp = '1')
GROUP BY jdxz;
```
在这个修改后的语句中,将ROUND函数中的第二个参数2改为了2::integer,同时使用了::numeric类型转换,将结果转换为numeric类型,以保证计算结果的精度和类型。
相关问题
错误: COALESCE 的类型 character varying 和 integer 不匹配
这个错误提示是因为 COALESCE 函数的参数类型不匹配,它要求所有参数的类型必须一致。在这个例子中,COALESCE 函数的参数包含一个 character varying 类型的参数和一个 integer 类型的参数,因此出现了类型不匹配的错误。要解决这个问题,需要将参数类型转换为一致的类型,或者使用其他函数来处理这个问题。
db2 coalesce函数
DB2中的COALESCE函数用于返回参数列表中的第一个非NULL值。如果参数列表中的所有值都为NULL,则返回NULL。
COALESCE函数的语法如下:
```
COALESCE(value1, value2, value3, ...)
```
在上述语法中,value1、value2、value3等表示要比较的值。
以下是一个示例,演示如何使用COALESCE函数:
```
SELECT COALESCE(column1, column2, column3) AS result
FROM table_name;
```
在上述示例中,我们从表中选择column1、column2和column3的值,并使用COALESCE函数返回这些列的第一个非NULL值,并将其命名为result。
希望这个回答能够帮助到您!如果您还有其他问题,请随时提问。