SQL返回具有多个空格的名称

时间:2017-03-06 10:17:58

标签: sql sql-server-2005

我希望在一个字段中返回包含多个空格的所有名称。 例如,约翰保罗史密斯'。使用SQL Server management studio 2005

示例我有一个患有姓氏和姓氏的患者表

我想要归还所有有例子的约翰保罗史密斯'在一个领域。

给出的查询似乎适用于姓氏字段,但不适用于姓名。我确定forename列具有这些类型的数据,但它没有返回任何结果。 CON

2 个答案:

答案 0 :(得分:4)

甲骨文:

SELECT MyField
from MyTable
where REGEXP_INSTR (MyField, ' ', 1, 2, 0, 'i') > 0

SQL server:

SELECT MyField
from MyTable
where CHARINDEX(' ', MyField, charindex(' ',MyField)+1) > 0

的MySQL

select MyField
from MyTable
where length(SUBSTRING_INDEX(MyField, ' ', 2)) < length(MyField)

答案 1 :(得分:1)

在我看来,这两种解决方案比JohnHC更容易阅读/理解。

  1. 它不会变得更简单。使用通配符搜索(至少)两个空格。

    SELECT * FROM your_table WHERE your_column LIKE '% % %';
    
  2. 检查替换空格后的长度

    SELECT * FROM your_table WHERE LEN(your_column) - LEN(REPLACE(your_column, ' ', '')) >= 2;