是否可以将Sybase Attribute-Value表转换为每列属性结果集。可以这样做吗?
来源表:
| 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 pound表之外。
限制是没有启用Java。
<子>
在我看来,这是不可能的,因为Sybase 15 ASE文档表明ALTER TABLE
中的列名不能包含动态数据:
子>
<子>的 computed_column_expression
是任何有效的T-SQL表达式,不包含来自其他表,局部变量,聚合函数或子查询的列。它可以是由一个或多个运算符连接的列名,常量,函数,全局变量或大小写表达式中的一个或组合。除非虚拟计算列引用实现计算列,否则不能在计算列之间进行交叉引用。
答案 0 :(得分:1)
是。我使用EXEC
SELECT @my_stmt = "ALTER TABLE #result ADD " + @param + " varchar(255) NULL"
EXEC(@my_stmt)