返回带有多个空格的名称的SQL
我希望在单个字段中返回包含多个空格的所有名称。 例如“约翰·保罗·史密斯”。使用SQLServerManagementStudio 2005 例如,我有一个名和姓的患者表 我想返回在一个字段中有“John Paul Smith”示例的所有名字 给出的查询似乎适用于姓氏字段,但不适用于名字。我确信forename列具有这些类型的数据,但它不返回任何结果。 Con甲骨文:返回带有多个空格的名称的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,
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以相同的方式更新。我注意到姓氏列不允许空值,而名字列允许空值。这会对查询产生影响吗?忽略我最后的评论!第二个和第三个名字正被放入新的哥伦布。对不起,谢谢你的帮助