0

ANSI SQL で列の値を分割するにはどうすればよいですか? 私は VectorWise DB を使用していますが、 VW は分割方法をサポートしていません

どうすれば解決できますか?

SELECT
       stars,
       LEFT(stars, POSITION(',', stars + ',') - 1) AS star1,
       CASE WHEN CHARACTER_LENGTH(oyuncu) - CHARACTER_LENGTH(REPLACE(stars, ',', '')) > 0
          THEN TRIM(SUBSTRING(stars, POSITION(',', stars) + 1,
              POSITION(',', stars + ',', POSITION(',', stars) + 1) 
              - POSITION(',', stars) - 1))
          ELSE NULL
          END AS star2,
       CASE WHEN CHARACTER_LENGTH(stars) - CHARACTER_LENGTH(REPLACE(stars, ',', '')) > 1
          THEN TRIM(SUBSTRING (stars, POSITION(',', stars + ',',
              POSITION(',', oyuncu) + 1) + 1, CHARACTER_LENGTH(stars)))
          ELSE NULL
       END AS star3
    FROM administrator.dnm

変更後のスクリーンショットを追加しました。しかし、私は変更後に欲しいものについて十分な評判を得ていません:(

ANSI は、T-SQL が持ついくつかの特定のメソッドをサポートしていません。

4

1 に答える 1

0

http://docs.actian.comにアクセスし、[オプション] をクリックして、[ Actian Vector 3.5] を選択し、ナビゲーターで [Vector 3.5 SQL 言語ガイド] を選択します。

SUBSTR および SUBSTRING 関数については、ここで説明されていますElements of SQL Statements -> SQL Functions -> String Functions -> SUBSTR Function。あなたの例は Vector 3.5 で動作するはずです。

于 2014-07-10T09:19:53.920 に答える