gpt4 book ai didi

sql - (SQL/PostgreSQL) 在查询中,如何使用另一个表作为查找将字段的值转换为更易于阅读的值?

转载 作者:行者123 更新时间:2023-11-29 11:36:17 25 4
gpt4 key购买 nike

我有 postgresql 表,其值如下:

Table region_data:

region_name | population | region_code
------------+------------+-------------
Region 1 | 120000 | A
Region 2 | 200000 | A
Region 3 | -1 | B
Region 4 | -2 | -1

某些数据可能不可用(即 -1 和 -2 值)

以及包含这些值翻译的表格:

Table data_codes:

code | meaning
------+-----------------------
-1 | 'Data not available'
-2 | 'Insufficient data'
...

Table region_types:

type | meaning
------+---------------
A | Mountain
B | Grassland
...

我想进行一个查询(实际上是一个 View ),返回由 data_code 和 region_types 表提供的人类可读的翻译。例如, View 将返回:

Region Name | Population         | Region Type
------------+--------------------+-------------
Region 1 | 120000 | Mountain
Region 2 | 200000 | Mountain
Region 3 | Data Not Available | Grassland
Region 4 | Insufficient Data | Data Not Available

我试过做一些子查询,但它们返回了很多重复的行,其中的代码与 data_code 表中的任何内容都不匹配。

请帮忙?谢谢!

最佳答案

假设数据代码和区域代码之间没有冲突,那么我看到两个挑战。一是population列的数据类型问题(值为整数但数据含义需要字符串)。另一种是将地区代码与数据代码结合起来:

select rd.region_name,
(case when population >= 0 cast(population as varchar(255))
else p.meaning
end) as population,
r.meaning
from region_data rd left outer join
(select type, meaning from region_types
union all
select code, meaning from data_codes
) r
on rd.region_code = r.type left outer join
data_codes p
on rd.population < 0 and rd.population = p.code;

关于sql - (SQL/PostgreSQL) 在查询中,如何使用另一个表作为查找将字段的值转换为更易于阅读的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18666247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com