ここでは、データ値を行に分割する方法については他にもありますが、サポートされていないか、プロシージャを作成するための適切なアクセス。私はこれをJavaで非常に簡単に行うことができますが、代わりにクエリで実行しようとするので、オーバーヘッドを避けることができます。Sybase IQ - 列のカンマ区切り値を行に分割する
それでは、私がやろうとしていることは...これを取る
ID | Data
abc | 18,20,22
def | 17,19
ghi | 13,19
し、それを変換している...
ID | Data
abc | 18
abc | 20
abc | 22
def | 17
def | 19
ghi | 13
ghi | 19
私は、再帰的な方法を試みたが、得ましたリモートサーバーがサポートしていないエラー
以下のXMLバージョンを試しましたが、構文エラーが発生しています最後の行に私が考えることができるのは、Aqua Dataが他のすべてのものと同じように強調表示していないため、Cross Applyがサポートされていないことだけです。
SELECT A.ID, Split.a.value('.', 'VARCHAR(100)') AS Data FROM ( SELECT ID, CAST ('<M>' + REPLACE(Data, ',', '</M><M>') + '</M>' AS XML) AS Data FROM mytable ) AS A CROSS APPLY Data.nodes ('/M') AS Split(a);
私はので、私はこのSybaseの機能(SA-スプリット-list)を使用してみまし権限
の機能/手順を作成することができませんよ...
http://dcx.sybase.com/1200/en/dbreference/sa-split-list-sysproc.html
しかし、それを組み込む方法がわからない
誰でも手伝うことができますか?
使用しているSybase IQのバージョンはどれですか?私のバージョンではXMLの機能は何も表示されません。 Sybase ASEを使用していないのですか? – stevepastelan
申し訳ありませんが、しばらくお待ちしていますが、解決策を探す際にSybase Iqを検索していました。それはまったくサポートされていないかもしれません。私はXMLに固執していませんでした。私はプロシージャを作成することなく分割する方法を見つけようとしていました – cpd1