ana*_*lov 2 sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2
假设我有一张桌子:
ColumnA ColumnB
---------------------------------
1 10.75
4 1234.30
6 2000.99
Run Code Online (Sandbox Code Playgroud)
如何编写将导致以下结果的SELECT查询:
ColumnA ColumnB
---------------------------------
1 10.75
2 0.00
3 0.00
4 1234.30
5 0.00
6 2000.99
Run Code Online (Sandbox Code Playgroud)
您可以使用CTE创建表中从1到最大值的数字列表:
; with numbers as
(
select max(ColumnA) as nr
from YourTable
union all
select nr - 1
from numbers
where nr > 1
)
select nr.nr as ColumnA
, yt.ColumnB
from numbers nr
left join
YourTable yt
on nr.nr = yt.ColumnA
order by
nr.nr
option (maxrecursion 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |