【发布时间】:2012-10-04 21:40:53
【问题描述】:
我想将多行合并为一个,但当某个字段中出现某个值时会有一个新行,请参阅下面的示例数据
数据当前在表中的情况
IncomingNumber QueNumber Datetime
-------------- --------- -------------------
12345678 1 2012-01-01 09:01:00
12345678 2 2012-01-01 09:02:00
12345678 3 2012-01-01 09:05:00
12345678 2 2012-01-01 09:07:00
12345678 3 2012-01-01 09:08:00
12345678 1 2012-01-01 09:10:00
12345678 2 2012-01-01 09:11:00
12345678 3 2012-01-01 09:13:00
09876543 1 2012-01-01 09:01:00
09876543 2 2012-01-01 09:02:00
09876543 1 2012-01-01 09:05:00
09876543 2 2012-01-01 09:06:00
09876543 3 2012-01-01 09:08:00
我希望数据的样子
IncomingNumber Datetime1 Datetime2 Datetime3 Datetime4 Datetime5
-------------- ------------------- ------------------- ------------------- ------------------- -------------------
12345678 2012-01-01 09:01:00 2012-01-01 09:02:00 2012-01-01 09:05:00 2012-01-01 09:07:00 2012-01-01 09:08:00
12345678 2012-01-01 09:10:00 2012-01-01 09:11:00 2012-01-01 09:13:00 Null Null
09876543 2012-01-01 09:01:00 2012-01-01 09:02:00 Null Null Null
09876543 2012-01-01 09:05:00 2012-01-01 09:06:00 2012-01-01 09:08:00 Null Null
因此,每次在 QueNumber 字段中出现 1 时,它都是一条新记录。我知道这与 CTE 查询有关,但我从来没有真正使用过它们并且完全被卡住了
【问题讨论】:
-
您是否正在寻找基于 QueNumber 排序中的任何中断的新记录。就像 QueNumber 3 后面跟着一个 2 一样?
-
这是sql-server 2012的,只有QueNumber为1时才需要新记录
标签: sql common-table-expression sql-server-2012