我有一个关键字表,我想使2个字的组合,而保持在连续的顺序(即我不希望每2个字的组合,只是当他们是之前或之后另一个)。SQL Combine 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
有没有人知道更聪明/更有效的方式,我可以做到这一点?
你使用哪种DBMS? – NEER
SQL Server Management Studio 2014 –