如何在Oracle SQL中选择子字符串

时间:2017-10-03 17:03:46

标签: sql oracle substring

说我有一个表客户,其列名字姓氏 我希望能够编写一个选择所有客户的查询  确切的姓氏和  模糊名字

当我在firstname列上运行它时,Substring将按预期返回值

查询

来自客户的SELECT SUBSTR(firstname,1,4);

**output:**
ABCD
qwry
cvbn etc

但我不确定如何让这项工作为2条记录进行匹配,其中一个客户的名字前4个字符与其他客户名字相同。

示例:

Customer1:Firstname = ABCDXYZ Lastname = SSS

Customer2:Firstname = ABCD Lastname = SSS

预期结果是能够在输出中看到这两条记录

2 个答案:

答案 0 :(得分:1)

以下查询将获取具有相同姓氏和相同名字的前四个字符的记录。 它使用自联接。希望表有一个像id这样的主键。

SELECT distinct c1.firstname, 
                c1.lastname, 
                c2.firstname, 
                c1.lastname
  FROM customer c1, customer c2
 WHERE c1.id <> c2.id 
   AND c1.lastname = c2.lastname
   AND substr(c1.firstname,1,4) = substr(c1.firstname,1,4)

答案 1 :(得分:0)

我不完全确定我明白你要做什么,但如果你知道firstName常见的“前缀”,你可以这样做:

SELECT * from Customer WHERE firstname LIKE'ABCD%'AND lastName ='SSS';