Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 2005 - Fatal编程技术网

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

返回带有多个空格的名称的SQL,sql,sql-server-2005,Sql,Sql Server 2005,我希望在单个字段中返回包含多个空格的所有名称。 例如“约翰·保罗·史密斯”。使用SQLServerManagementStudio 2005 例如,我有一个名和姓的患者表 我想返回在一个字段中有“John Paul Smith”示例的所有名字 给出的查询似乎适用于姓氏字段,但不适用于名字。我确信forename列具有这些类型的数据,但它不返回任何结果。 Con甲骨文: SELECT MyField from MyTable where REGEXP_INSTR (MyField, ' ', 1,

我希望在单个字段中返回包含多个空格的所有名称。 例如“约翰·保罗·史密斯”。使用SQLServerManagementStudio 2005

例如,我有一个名和姓的患者表

我想返回在一个字段中有“John Paul Smith”示例的所有名字

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

甲骨文:

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

选择我的字段
从MyTable
其中长度(子串索引(MyField,,,2))
Oracle:

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

选择我的字段
从MyTable
其中长度(子串索引(MyField,,,2))
在我看来,有两种解决方案比约翰霍克的更容易阅读/理解

  • 再简单不过了。使用通配符搜索(至少)两个空格

    SELECT * FROM your_table WHERE your_column LIKE '% % %';
    
  • 更换空格后检查长度

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

  • 在我看来,这里有两种解决方案比约翰霍克的更容易阅读/理解

  • 再简单不过了。使用通配符搜索(至少)两个空格

    SELECT * FROM your_table WHERE your_column LIKE '% % %';
    
  • 更换空格后检查长度

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

  • 您使用的是哪种数据库管理系统?(答案可能是特定于产品的。)但说真的,请在我第一次在本网站上发布的帖子上标记您的数据库。我正在使用SQLServerManagementStudio 2005。您正在使用哪些数据库管理系统?(答案可能是特定于产品的。)但说真的,请在我第一次在本网站上发布的帖子上标记您的数据库。我正在使用SQL Server management studio 2005。删除我的答案并为您的答案投票!有什么理由可以在一个专栏中使用,而不是在另一个专栏中使用?似乎对“姓氏”列正常工作,但未在上返回任何内容forename@Conger88要获得更多帮助,请编辑问题并提供以下内容:示例数据、预期输出、,DBMS@JohnHC以相同的方式更新。我注意到姓氏列不允许空值,而名字列允许空值。这会对查询产生影响吗?忽略我最后的评论!第二个和第三个名字正被放入新的哥伦布。对不起,谢谢你的帮助删除我的答案并投你的票!有什么理由可以在一个专栏中使用,而不是在另一个专栏中使用?似乎对“姓氏”列正常工作,但未在上返回任何内容forename@Conger88要获得更多帮助,请编辑问题并提供以下内容:示例数据、预期输出、,DBMS@JohnHC以相同的方式更新。我注意到姓氏列不允许空值,而名字列允许空值。这会对查询产生影响吗?忽略我最后的评论!第二个和第三个名字正被放入新的哥伦布。对不起,谢谢你的帮助