我需要选择在 () 之间找到的子字符串。起始位置和结束位置以及子字符串的长度都会有所不同。我在以下方面取得了一定的成功,但不是 100%。
它适用于某些值,但不适用于其他值,它返回空白,并且还会更改值的大写格式,换句话说,如果值是“TEST”,它将显示为“Test”。
SELECT SUBSTRING(columnName, CHARINDEX('(', LEN(columnName)),
CHARINDEX(')', columnName) - CHARINDEX('(',columnName)) AS INPUT
FROM tableName
更新只有一组括号 ()
最佳答案
只要您只出现一次 (
和 )
,这就会起作用:
SELECT
SUBSTRING(columnName,
CHARINDEX('(', columnName)+1,
CHARINDEX(')', columnName) - CHARINDEX('(', columnName)-1)
FROM tableName
如果您的值没有任何 (...)
内容,请添加以下 where 子句:
WHERE CHARINDEX('(', columnName) > 0 AND
CHARINDEX(')', columnName) > CHARINDEX('(', columnName)
关于sql - 选择子字符串 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947321/