首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Postgres -在lower UNION select语句中插入NUMERIC[]值'0‘

Postgres -在lower UNION select语句中插入NUMERIC[]值'0‘
EN

Stack Overflow用户
提问于 2019-10-31 02:28:20
回答 1查看 130关注 0票数 0

在POSTGRES中-我正在尝试从2个表创建一个视图。当'0‘的值被编码为插入UNION select语句下半部分数据类型为NUMERIC24,20的EAST_LONGITUDE_NMBR列的值时,将生成一条错误消息。

视图范围的列EAST_LONGITUDE_NMBR来自数据类型为NUMERIC24,20的表和列CELL_EXTENT.EAST_LONGITUDE_NMBR

以下是代码。

代码语言:javascript
代码运行次数:0
运行
复制
    CREATE VIEW EXTENTS
    (
       ID,
       EXTENT_TYPE,
       NAME,
       EAST_LONGITUDE_NMBR
    )

    AS
       SELECT 
          "CELL_EXTENT"."CELL_ID_NMBR",
          'CELL',
          UPPER ("CELL_EXTENT"."CELL_NAME"), 
          "CELL_EXTENT"."EAST_LONGITUDE_NMBR"
       FROM "EARTH"."CELL_EXTENT"

   UNION
       (SELECT 
           "AREA_INTEREST"."AREA_ID_NMBR",
           'GEOPOLITICAL',
           UPPER ("AREA_INTEREST"."AREA_NAME"),
           0
       FROM "EARTH"."AREA_INTEREST");

在较低的UNION select中插入的值'0‘导致创建视图范围时出现以下错误。

错误:联合类型numeric[]和integer不匹配

我已经尝试了以下操作,并收到了显示的错误:

代码语言:javascript
代码运行次数:0
运行
复制
    0                 ERROR:  UNION types numeric[] and integer cannot be matched
    0.0               ERROR:  UNION types numeric[] and numeric cannot be matched
    0.0::NUMERIC[]    ERROR:  cannot cast type numeric to numeric[]
    0::NUMERIC[]      ERROR:  cannot cast type integer to numeric[]

我查看了许多关于Postgres数据类型的讨论的网站,特别是数字,NUMERIC[],整数,小数

Difference between DECIMAL and NUMERIC datatype in PSQL

https://github.com/npgsql/npgsql/issues/655

https://www.cybertec-postgresql.com/en/mapping-oracle-datatypes-to-postgresql/

http://www.postgresqltutorial.com/postgresql-cast/

http://www.postgresqltutorial.com/postgresql-to_number/

我可以继续讲下去,但你明白我的意思。有很多关于数据类型的内容,但是在Postgres代码中,对于UNION语句中数据类型为NUMERIC[]的列,没有将'0‘作为实际值的示例。

我觉得这是一个简单的解决方法,只需在这里或那里敲击几个键来设置适当的值,但我就是搞不懂。我正在使用pgAdmin4。

你能帮上忙吗?谢谢,玛格丽特

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 02:33:06

看起来很简单:使用数组而不是0。

根据您的喜好,您可以使用

代码语言:javascript
代码运行次数:0
运行
复制
ARRAY[]::numeric[]   -- empty array

代码语言:javascript
代码运行次数:0
运行
复制
ARRAY[0]::numeric[]  -- array with a single 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58631681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档