标头/明细混合 [英] Header / Detail mixed

查看:84
本文介绍了标头/明细混合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一张桌子:

I have a table:

IDX	MyText
1	Header1
2	BodyA
3	BodyB
4	Header2
5	BodyC
6	BodyD
7	BodyE
8	Header3
9	BodyF
10	BodyG
11	BodyH



我想要的是:



What I want is:

IDX	MyHeader	MyText
2	Header1		BodyA
3	Header1		BodyB
5	Header2		BodyC
6	Header2		BodyD
7	Header2		BodyE
9	Header3		BodyF
10	Header3		BodyG
11	Header3		BodyH


我试过了:


I have tried:

SELECT IDX, MyText AS MyHeader
INTO #Temp1
FROM MyTable
WHERE LEFT(MyText, 7) = 'History'

SELECT
      P.IDX
    , (SELECT TOP(1) T.IDX, T.MyHeader FROM #Temp1 T WHERE T.IDX < P.IDX ORDER BY T.IDX DESC) AS MyHeader
    , P.MyText
FROM MyTable P
WHERE LEFT(P.MyText, 7) <> 'History'


我收到的错误信息:
第16层,状态1,第3行,消息116
如果未使用EXISTS引入子查询,则只能在选择列表中指定一个表达式.


有人可以指出我正确的方向吗?
感谢


To which I get the error:
Msg 116, Level 16, State 1, Line 3
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.


Can someone point me in the correct direction?
Thanks

推荐答案

在以下位置找到了解决方案:
Found a solution at: stackoverflow SQL:How to fill empty cells with previous row value[^]

Took a little tweaking but got it to work.


这篇关于标头/明细混合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆