我需要将列转换为Teradata中没有TD_UNPIVOT的行。我的表将列转换为行Teradata
ID |Code_1 | Code_2 | Code_3 | Code_4| 1 |1000 | 2000 | 3000 | 4000 | 1 |1000 | 2000 | 3000 | NULL | 1 |1000 | 2000 | NULL | NULL | 1 |1000 | NULL | NULL | NULL |
我需要Code_1,CODE_2,CODE_3,Code_4转换成2列:第一列将所有Code_n(不包括NULL),第二个将有代码的级别:
ID | Code_n | Level_of_Code
1 | 4000 | 4
1 | 3000 | 3
1 | 2000 | 2
1 | 1000 | 1
这意味着,比我应该知道什么时候代码NULL(其中一级Code_1,CODE_2,CODE_3或Code_4,之后将其转换为列,最大级别的数字,我没有NULL)。
请帮帮我。 谢谢
TD_UNPIVOT(http://www.info.teradata.com/HTMLPubs/DB_TTU_14_10/index.html#page/SQL_Reference/B035_1145_112A/Table_Operators.098.21.html)你在找什么。 – Andrew
我不能使用td_unpivot,我没有权利激活它 – monika01
呃,那么你需要使用'UNION'。 'SELECT ID,code_1,1作为level_of_code从 union select id,code_2 from ... order by 1,3 desc'。 –
Andrew