gpt4 book ai didi

sql - 加入包含前一个最大值的列

转载 作者:行者123 更新时间:2023-12-01 11:52:48 27 4
gpt4 key购买 nike

好吧,假设我有一个包含字段“code”的表。查询 select code from mytable group by code 返回:

code
EM010
EM100
EM101
EM105
EM106
...

我需要添加一个包含下一个最高代码的列(带有连接或其他东西)。以上将变成:

code    code2
EM010 null (or blank or wtvr)
EM100 EM010
EM101 EM100
EM105 EM101
EM106 EM105
... ...

我会提供我尝试过的东西,但它很困惑,我一直意识到我的做法是错误的。

顺便说一句,我在 vfp 工作,所以它在技术上是 tsql,但我应该能够转换任何不同的东西,所以我不介意我得到的答案没有在 tsql 中测试过。

最佳答案

试试这个:

WITH T1 AS
(
SELECT code, ROW_NUMBER() OVER (ORDER BY code) AS rn FROM
(
SELECT DISTINCT code FROM mytable
)
)
SELECT T1.code, T2.code AS code2
FROM T1
LEFT JOIN T1 AS T2
ON T1.rn = T2.rn + 1

顺便说一句,在 SQL Server 2012 中,您可以使用 LAG做你想做的分析功能。不过,我不确定 Visual Fox Pro 是否支持它。

关于sql - 加入包含前一个最大值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690830/

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