1

Sybaseの属性値テーブルを列ごとの属性の結果セットにピボットする方法はありますか。これはできますか?

ソーステーブル:

| attribute | value |
~~~~~~~~~~~~~~~~~~~~~
| a1        | A1    |
| b2        | BB2   |
| random    | X     |

簡単にするために、と列のvarchar(255)両方で、 ;の一意のインデックスを想定します。また、属性名は、 Sybaseの有効な列名である文字列であることが100%保証されています。attributevalueattribute

希望する選択結果:

| a1   | b2   | random |
~~~~~~~~~~~~~~~~~~~~~~~~
| A1   | BB2  | X      |

これは、Sybase ASEのSQLを介して実行できますか?(12または15)?

ノート:

  • 明確にするために、属性のセットが何であるかを事前に知りません!!!

  • #tempポンドテーブルを超えて結果セットを永続化する必要はありません。

  • 制限は、Javaが有効になっていないことです。


ALTER TABLESybase 15 ASEのドキュメントには、の列名に動的データが含まれていてはならない ことが示されているため、これを行うことは不可能のように思われます。

calculated_column_expressionは、他のテーブル、ローカル変数、集計関数、またはサブクエリの列を含まない
有効なT-SQL式です。これは、列名、定数、関数、グローバル変数、または大文字小文字の表現の1つまたは組み合わせであり、1つ以上の演算子で接続されます。仮想計算列参照が計算列を実体化する場合を除いて、計算列間で相互参照することはできません。

4

1 に答える 1

1

はい。私はそれを使ってやったEXEC

 SELECT @my_stmt = "ALTER TABLE #result ADD " + @param + " varchar(255) NULL" 
 EXEC(@my_stmt)
于 2014-12-29T19:16:43.500 に答える