gpt4 book ai didi

sql - 没有表格的映射值

转载 作者:太空狗 更新时间:2023-10-30 01:47:58 25 4
gpt4 key购买 nike

我需要使用映射根据 year_code 的值将特定值分配给 year。目前我有一个很大的 if 语句,显然很难维护。

IF year_code = 'Y' THEN year := 2000; END IF;
IF year_code = '1' THEN year := 2001; END IF;
IF year_code = '2' THEN year := 2002; END IF;
-- and so on

显而易见的解决方案是使用一个表并选择一个值,但是我被指示将它全部保存在一个 postgres 函数中以便快速完成。稍后我计划将所有这些存储在表中。

那么有没有一种方法可以创建一个临时 map 并从中选择以获得当年的值(value)。真的,我只想清理这段丑陋的代码。谢谢。

最佳答案

使用 Common Table Expression (CTE)在您的函数中,以后可以很容易地用基表替换 CTE,例如

WITH YearCodes (year_code, year) AS
( SELECT year_code, year
FROM ( VALUES ( 'Y', 2000 ),
( '1', 2001 ),
( '2', 2002 ) )
AS YearCodes ( year_code, year ) )
SELECT ...;

或者,派生表:

SELECT *
FROM ( VALUES ( 'Y', 2000 ),
( '1', 2001 ),
( '2', 2002 ) )
AS YearCodes ( year_code, year )
-- other stuff here;

也许后面的基表可以是 calendar table .

关于sql - 没有表格的映射值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6093085/

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