如何在SQL中透视单个列源数据?

时间:2017-08-28 06:50:47

标签: sql oracle pivot

下面是输入和输出的详细信息。任何数据库Oracle,SQL Server和MySQL都应该做出答案。我无法推导出对数据进行排名的逻辑,这将有助于我转向。

我的源代码是一个平面文件,其中包含如下数据。我已将该文件加载到Oracle的其中一个表中。

来源输入:

**Flatfile1**
**Coulmn1**
Kamesh
65
5000
123456789
Nanu
45
3000
321654789

预期产出:

Name    Age Salary  Mobilenumber
Kamesh  65  5000    123456789
Nanu    45  3000    321654789

加载到其中一个表后,我正在应用逻辑来对这些数据进行编号,最终将如下所示:

Column1 Datavalue
Kamesh      1
65          1
5000        1
123456789   1
Nanu        2
45          2
3000        2
321654789   2

然而,我无法导出逻辑(我尝试使用Rank),这将给出我这样的序列号而没有任何关键字段。希望这可以解释情况。

谢谢!

1 个答案:

答案 0 :(得分:0)

Oracle不按顺序存储行,如果你多次从table1中选择*,你可以根据db操作和缓存获得不同顺序的行

因此,如果您有一个没有其他列的表,则无法“转动”数据。 我强烈建议以标准化形式保存数据,如果你不能考虑添加一个自动填充行ID的列(oracle 12中的标识列,以前版本中的触发器+序列)

按顺序排列后,您可以轻松整理数据