Rez*_*eni 1 sql sql-server sql-server-2008
我在SQL Server中有一个表,如下所示:
Table1:
Id Symbol
1 a
5 c
8 d
3 b
Run Code Online (Sandbox Code Playgroud)
我想排序基于数据Id并连接symbol在连续行:
Query Result:
Id Symbol
1 ab
3 bc
5 cd
8 d
Run Code Online (Sandbox Code Playgroud)
什么是这个结果的最佳查询?
在SQL Server 2012 +中:
SELECT
Id,
symbol + ISNULL(LEAD(symbol) OVER (ORDER BY Id), '') as symbole
FROM
t
Run Code Online (Sandbox Code Playgroud)
或旧版本:
;WITH CTE AS (
SELECT
*, ROW_NUMBER() OVER (ORDER BY Id) AS rn
FROM
t)
SELECT t1.Id, t1.symbol + ISNULL(t2.symbol, '') As symbole
FROM CTE t1
LEFT JOIN CTE t2
ON t1.rn = t2.rn - 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |