我在此處看到有關將數據值拆分成行的其他解決方案,但到目前爲止,它們都不適用於Sybase IQ--或者因爲它不受支持,或者我沒有適當的訪問來創建程序。我可以在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版本,但我不斷收到語法錯誤在最後一行。我能想到的唯一的事情就是Cross Apply不被支持,因爲Aqua Data不像其他所有的事情那樣突出顯示單詞。
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-分列表)功能/程序...
http://dcx.sybase.com/1200/en/dbreference/sa-split-list-sysproc.html
但不知道如何納入它
任何人都可以提供幫助?
您正在使用哪個版本的Sybase IQ?我的版本中沒有看到任何XML功能。你確定你不在Sybase ASE上嗎? – stevepastelan
對不起,這是一段時間,但我記得在尋找解決方案時搜索Sybase IQ。可能是因爲它根本不支持。我並沒有停留在XML上。我只是試圖找出一種分割方式,而無需創建過程 – cpd1