如何在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的某些特定方法。
答案 0 :(得分: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。