我希望在一个字段中返回包含多个空格的所有名称。 例如,约翰保罗史密斯'。使用SQL Server management studio 2005
示例我有一个患有姓氏和姓氏的患者表
我想要归还所有有例子的约翰保罗史密斯'在一个领域。
给出的查询似乎适用于姓氏字段,但不适用于姓名。我确定forename列具有这些类型的数据,但它没有返回任何结果。 CON
答案 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更容易阅读/理解。
它不会变得更简单。使用通配符搜索(至少)两个空格。
SELECT * FROM your_table WHERE your_column LIKE '% % %';
检查替换空格后的长度
SELECT * FROM your_table WHERE LEN(your_column) - LEN(REPLACE(your_column, ' ', '')) >= 2;