我继承了一个设计糟糕的表格,其中数据存储如下:
Period | Identifier | Value
----------------------------------
1 | AB1 | some number
1 | AB2 | some number
1 | AB3 | some number
1 | AB4 | some number
1 | AB5 | some number
1 | A1 | some number
1 | A2 | some number
1 | A3 | some number
1 | A4 | some number
1 | A5 | some number
2 | AB1 | some number
2 | AB2 | some number
2 | AB3 | some number
2 | AB4 | some number
2 | AB5 | some number
2 | A1 | some number
2 | A2 | some number
2 | A3 | some number
2 | A4 | some number
2 | A5 | some number
我正在尝试使用 SELECT 语句将数据转换为这种格式:
Row # | First value | Second value
1 | A1's number | AB1's number // The next 5 rows are data from period 1
2 | A2's number | AB2's number
3 | A3's number | AB3's number
4 | A4's number | AB4's number
5 | A5's number | AB5's number
6 | A1's number | AB1's number // These 5 rows are from period 2
7 | A2's number | AB2's number
8 | A3's number | AB3's number
9 | A4's number | AB4's number
10 | A5's number | AB5's number
AB%
并且A%
是该格式的两个单独的ID WHERE LIKE ...
,我认为这会稍微挫败条款。我不完全确定可以将数据强制转换为所需的格式,但我的主管要求我进行调查。
我不知道 SQL 代码的最初尝试是查看行号本身并使用,但正如我所说,我不确定如何沿着这条路线前进。
目前,数据在 SQL Server 中,但将使用proc sql
. 我认为这些标准在很大程度上符合 SQL Server,即使DECLARE
不受支持。
不,我不知道以这种方式存储数据的是谁的想法......