Ren*_*ene 8 sql sql-server select substring
我需要选择在()之间找到的子字符串.起始位置和结束位置以及子字符串的长度会有所不同.我在以下方面取得了一定的成功,但不是100%.
它适用于某些值但不适用于其他值,它会返回空白并且还会更改值大写格式,换句话说,如果值为'TEST',它将显示为'Test'.
SELECT SUBSTRING(columnName, CHARINDEX('(', LEN(columnName)),
CHARINDEX(')', columnName) - CHARINDEX('(',columnName)) AS INPUT
FROM tableName
Run Code Online (Sandbox Code Playgroud)
更新只有一组括号()
如果您只有一次出现(并且):
SELECT
SUBSTRING(columnName,
CHARINDEX('(', columnName)+1,
CHARINDEX(')', columnName) - CHARINDEX('(', columnName)-1)
FROM tableName
Run Code Online (Sandbox Code Playgroud)
如果您的值没有任何(...)内容,请添加以下where子句:
WHERE CHARINDEX('(', columnName) > 0 AND
CHARINDEX(')', columnName) > CHARINDEX('(', columnName)
Run Code Online (Sandbox Code Playgroud)