Как разбить строку в 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.