Как разбить строку в ANSI-SQL

Как я могу разделить значение столбца в 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.

1 ответ

Перейдите на http://docs.actian.com/, нажмите "Параметры", выберите Actian Vector 3.5, а в навигаторе выберите "Руководство по языку SQL для Vector 3.5".

Функции SUBSTR и SUBSTRING описаны здесь: Elements of SQL Statements -> SQL Functions -> String Functions -> SUBSTR Function, Ваш пример должен работать на Vector 3.5.

Другие вопросы по тегам