Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在字符串中查找列表中任何字符的索引_Sql_Sql Server 2008 - Fatal编程技术网

Sql 在字符串中查找列表中任何字符的索引

Sql 在字符串中查找列表中任何字符的索引,sql,sql-server-2008,Sql,Sql Server 2008,我感兴趣的是从字符串中查找字符索引,其中字符可以是空格或u(下划线)或-(连字符) (返回5) 如果我搜索“空间”,可以使用,但我对前面提到的任何一个符号都感兴趣。有什么想法吗?正确的语法是什么?它很混乱,因此可能有一种更简洁的方法,但下面的方法可以奏效 SELECT MIN(pos) FROM ( SELECT CHARINDEX(' ','kj-hk won_derful', 1) AS pos UNION ALL SELECT CHARINDEX('_','kj-h

我感兴趣的是从字符串中查找字符索引,其中字符可以是空格或u(下划线)或-(连字符)

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

它很混乱,因此可能有一种更简洁的方法,但下面的方法可以奏效

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

它很凌乱,所以可能会有一个更整洁的方法,但下面的方法会奏效

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
检查这个

SELECT PATINDEX('%[ _-]%','kjhk wonderful')
检查这个

SELECT PATINDEX('%[ _-]%','kjhk wonderful')
请尝试使用:

请尝试使用: