gpt4 book ai didi

sql - 填补 SQL Server 中年份序列的空白

转载 作者:行者123 更新时间:2023-12-03 16:01:40 26 4
gpt4 key购买 nike

我有一个带有列 Age 的表格, PeriodYear .栏目Age总是从 0 开始并且没有固定的最大值(我在这个例子中使用了 'Age' 0 到 30,但范围也可以是 0 到 100 等),值 PeriodYear只出现在特定年龄的特定行中。
然而在什么Age Period 的值和 Year出现,变化和解决方案因此应该是动态的。填写NULL的最佳方式是什么?正确的值 PeriodYear ?
我正在使用 SQL Server。

Age Period  Year
-----------------
0 NULL NULL
1 NULL NULL
2 NULL NULL
3 NULL NULL
4 NULL NULL
5 NULL NULL
6 NULL NULL
7 NULL NULL
8 NULL NULL
9 NULL NULL
10 NULL NULL
11 NULL NULL
12 NULL NULL
13 NULL NULL
14 NULL NULL
15 NULL NULL
16 NULL NULL
17 NULL NULL
18 NULL NULL
19 NULL NULL
20 NULL NULL
21 46 2065
22 NULL NULL
23 NULL NULL
24 NULL NULL
25 NULL NULL
26 51 2070
27 NULL NULL
28 NULL NULL
29 NULL NULL
30 NULL NULL
结果应该是这样的, Period 的数字和 Year应该从 Period 的最后一个已知值增加和/或减少和 Year .
Age Period  Year      
-----------------
0 25 2044
1 26 2045
2 27 2046
3 28 2047
4 29 2048
5 30 2049
6 31 2050
7 32 2051
8 33 2052
9 34 2053
10 35 2054
11 36 2055
12 37 2056
13 38 2057
14 39 2058
15 40 2059
16 41 2060
17 42 2061
18 43 2062
19 44 2063
20 45 2064
21 46 2065
22 47 2066
23 48 2067
24 49 2068
25 50 2069
26 51 2070
27 52 2071
28 53 2072
29 54 2073
30 55 2074
这是我的问题的更新,因为我没有详细说明我的要求:
该解决方案应该能够处理 Age 的不同组合。 , PeriodYear .我的起点永远是一个已知的 Age , PeriodYear组合。然而,组合 Age = 21, Period = 46 和 Year = 2065(或 26|51|2070 作为第二个组合)在我的示例中不是静态的。 Age 处的值= 21 可以是任何东西,例如 Period = 2 和 Year = 2021。无论组合( AgePeriodYear )是什么,解决方案都应该填补空白并完成从 Period 的已知值开始向上和向下计数的序列和 Year .如果 Period值序列变为负数,解应该返回 NULL值,如果可能。

最佳答案

似乎你的年龄和年份总是相同的增量
所以

select age, isnull(period,age +25) Period,  isnull(year,age+44) year  
from yourtable
或标准函数合并(如戈登林诺夫所建议的)
select age, coalesce(period,age +25) Period,  coalesce(year,age+44) year  
from yourtable

关于sql - 填补 SQL Server 中年份序列的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63735259/

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