gpt4 book ai didi

SQL 一次合并 2 行

转载 作者:行者123 更新时间:2023-12-01 09:17:55 24 4
gpt4 key购买 nike

我有一张关键字表,我想在保持顺序的同时将其组合成 2 个单词组合(即,我不希望每个 2 个单词组合,只是在它们彼此之前或之后)。

我可以使用 WHILE 循环来完成这项工作,但是查询很庞大而且不是最优的,因为我需要在更大的查询中使用它。我的查询如下:

IF OBJECT_ID('tempdb..#Temp') IS NOT NULL
DROP TABLE #Temp

CREATE TABLE #Temp
(
RowNum INT
,Keyword VARCHAR(50)
)

INSERT #Temp
VALUES
(1, 'Apple'),
(2, 'Flavored'),
(3, 'Ice'),
(4, 'Tea')

IF OBJECT_ID('tempdb..#Final') IS NOT NULL
DROP TABLE #Final

CREATE TABLE #Final
(
Combined VARCHAR(101)
)

DECLARE @i INT
DECLARE @kw1 VARCHAR(50)
DECLARE @kw2 VARCHAR(50)

SET @i = 2

WHILE EXISTS (SELECT * FROM #Temp WHERE RowNum = @i)
BEGIN

SET @kw1 = (SELECT Keyword FROM #Temp WHERE RowNum = @i - 1)
SET @kw2 = (SELECT Keyword FROM #Temp WHERE RowNum = @i)

INSERT #Final
SELECT @kw1 + ' ' + @kw2

SET @i = @i + 1

END

SELECT * FROM #Final

有谁知道我可以用更聪明/更有效的方法来完成这项工作?

最佳答案

你可以使用以下

insert into #Final(Combined)
select Keyword + ' ' + Lag(Keyword,1,null) over (order by RowNum)
from #Temp
where RowNum>=2

希望对你有帮助

关于SQL 一次合并 2 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574313/

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