有没有办法将 Sybase Attribute-Value 表转换为 Attribute-per-column 结果集。这可以做到吗?
源表:
| attribute | value |
~~~~~~~~~~~~~~~~~~~~~
| a1 | A1 |
| b2 | BB2 |
| random | X |
为简单起见,假设varchar(255)
在attribute
和value
列上,唯一索引在attribute
; 并且属性名称 100%保证是有效的 Sybase 列名称的字符串。
期望的选择结果:
| a1 | b2 | random |
~~~~~~~~~~~~~~~~~~~~~~~~
| A1 | BB2 | X |
这可以通过 Sybase ASE 中的 SQL 来实现吗?(12 或 15)?
笔记:
需要明确的是:我们事先并不知道属性集是什么!!!
无需将结果集保留在#temp 磅表之外。
限制是没有启用 Java。
在我看来这是不可能的,因为 Sybase 15 ASE 文档指出列名ALTER TABLE
不能包含动态数据:
computed_column_expression
是任何有效的 T-SQL 表达式,它不包含来自其他表、局部变量、聚合函数或子查询的列。它可以是由一个或多个运算符连接的列名、常量、函数、全局变量或 case 表达式之一或组合。您不能在计算列之间进行交叉引用,除非虚拟计算列引用具体化计算列。