从string中的列表中查找任何字符的索引

时间:2013-04-17 11:08:27

标签: sql sql-server-2008

我有兴趣从字符串中查找字符索引,其中字符是空格或_(下划线)或 - (连字符)。

SELECT CHARINDEX(' ','kjhk wonderful', 1)

(退货5) 如果我搜索“空间”,可以使用,但我对所提到的任何一个符号感兴趣,这是第一个。有什么想法吗?什么是正确的语法?

3 个答案:

答案 0 :(得分:4)

检查

SELECT PATINDEX('%[ _-]%','kjhk wonderful')

答案 1 :(得分:1)

它很乱,所以可能会有一个更简洁的方式,但以下方法会有效。

SELECT MIN(pos) FROM
(
    SELECT CHARINDEX(' ','kj-hk won_derful', 1) AS pos
    UNION ALL
    SELECT CHARINDEX('_','kj-hk won_derful', 1) AS pos
    UNION ALL
    SELECT CHARINDEX('-','kj-hk won_derful', 1) AS pos
) as query

答案 2 :(得分:0)

请尝试使用PATINDEX (Transact-SQL)

SELECT PATINDEX('%[ _-]%', 'kjhk wonderful')