SQL - 特定字符串的检索查询

时间:2013-08-06 07:23:47

标签: sql

我正在制作一个小型数据库(少于50个条目),我遇到查询问题。我目前的询问是

SELECT  Name
FROM Customers 
WHERE Name LIKE '%Adam%'

名称的格式为“Adam West”。

查询在检索名称中包含“Adam”的所有人时效果很好,但我只想检索名字,而不是姓氏。我不想拆分列,但想知道如何重写我的查询以解决这个问题。

5 个答案:

答案 0 :(得分:4)

SELECT Name 来自客户 名字就像'亚当%'

答案 1 :(得分:1)

如果你用空格存储名称作为分隔符示例“Adam abcd”,其中'Adam'是名字,'abcd'作为姓氏然后跟随将工作

SELECT     Expr1
FROM         (SELECT     LEFT(Name, CHARINDEX(' ', Name, 1)) AS Expr1
                       FROM          Customers) AS derivedtbl_1
WHERE     (Expr1 LIKE 'Adm%')

有关详细信息,请阅读本文http://suite101.com/article/sql-functions-leftrightsubstrlengthcharindex-a209089

答案 2 :(得分:0)

如果您的客户名称以名字开头(例如 Adam West ),您可以使用

select Name
from Customers
where Name like 'Adam %'

否则,如果名称格式为<last name> <first name>,您可以使用

select Name
from Customers
where Name like '% Adam' 

答案 3 :(得分:0)

试试这个

{SELECT Name 来自客户 WHERE SUBSTRING(名称,1,CHARINDEX('',名称)-1)LIKE'%Adam%' }

我假设名字和姓氏是空格的,我把名字取出来

使用SUBSTRING(名称,1,CHARINDEX('',名称)-1) 并比较你想要的。如果你有其他东西在sinarater中使用sapater来改变charindex的名字和姓氏。

如果需要任何其他帮助,请告诉我。

此致

Ashutosh说

答案 4 :(得分:0)

您确实应该“拆分”列并规范化表格,以避免使用复杂的字符串函数来搜索姓氏或名字或者您需要查找的内容。如果有人先输入姓氏然后输入名字呢?或者只是一个昵称?

也就是说,检查Microsoft technet siteLIKE的使用情况。以下查询应该对您的案例有所帮助:

SELECT Name
  FROM Customers
 WHERE Name LIKE 'Adam%'