我怀疑。我有一个名为“ID”的专栏。在该列中,我有“FieldName”后跟“FromDate”,“Value”后跟“2012/12/01”,“FieldName”后跟“ToDate”值“2013/12/01”等值,
**ID column**
FieldName
FromDt
Value
2010/12/01
FieldName
ToDt
Value
2013/12/21
FieldName
CreatedDt
Value
2012/10/01
FieldName
ModifyDt
Value
2013/01/02
现在我想要一张像
这样的表格**FieldName Value**
FromDt 2010/12/01
ToDt 2013/12/21
CreatedDt 2012/10/01
ModifyDt 2013/01/02
是否可以使用具有单列且没有聚合功能的数据透视图?请建议我怎么做? (使用Pivot或其他方法)
此致 T.N.Nagasundar
答案 0 :(得分:1)
@Magnus建议你应该有另一列Order By
。
否则,试试这个。 SQLFiddle
WITH cte AS
(
SELECT ID,ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS row_num
FROM tbl
)
SELECT c1.ID AS [field_name], c2.ID AS [value]
FROM cte c1
INNER JOIN cte c2
ON c2.row_num = c1.row_num + 2
WHERE (c1.row_num % 4) = 2
答案 1 :(得分:0)
我不知道在这种情况下使用pivot。可以将原始订单行拆分为4个组,并从每个组中选择每个第2行和第4行,如下所示:
http://sqlfiddle.com/#!3/b2af8/13/0
with t2 as (
select
id,
(row_number() over(order by (select 0)) - 1) / 4 grp,
(row_number() over(order by (select 0)) - 1) % 4 row
from t
)
select a.id FieldName,
b.id Value
from t2 a
join t2 b
on a.grp = b.grp
and a.row = 1 -- 2nd row numbering from 0
and b.row = 3