根据值从表中返回特定列的函数

问题描述 投票:0回答:1

我有一个这样的查询(PostgreSQL 15.4):

Select p."prodId", p."prodDesc", p."areaName", x."location1" as "Location"
From ops."Products" p
Inner Join ops."Locations" x on p."prodId" = x."prodId" 
                             and p."areaName" = x."areaName1"

这里有一个警告:在表

Locations
中,有三个位置:
location1
location2
location3
。另外还有三栏
areaName1
areaName2
areaName3

我需要将

location
列返回为
location1
location2
location3
,基于
areaName
表中的
Products
列等于 中相应的
areaName
列之一
Locations
areaName1
areaName2
areaName3

我的想法是能够使用某种函数,我可以将函数用于查询的其余部分,并让该函数处理上述所有内容。在遥远的土地和时间,我可能会将其处理为动态 SQL,但想知道是否有更好的方法?

    

sql postgresql join inner-join stored-functions
1个回答
0
投票

您可以在查询中内联执行此操作,但它会比仅修复数据结构更慢(且不易维护)。

join

	
© www.soinside.com 2019 - 2024. All rights reserved.