SQL连接查询 - 连接名称中的四个

时间:2016-10-24 00:03:40

标签: sql

我正在尝试在SQL中创建一个视图。我们将此视图称为“A7T8”。视图将从数据库中提取名字和姓氏,并将名字和姓氏连接到名为FullName的字段中。但是,我只想选择在名字和姓氏中总共至少有四个As的连接名称。 (Rebecca Aaronson不会被展示,因为她只有3个As,但会展示Harry Flanagan。

目前我的代码是:

CREATE VIEW A7T8 AS
SELECT FNAME || ' ' || LNAME AS FULLNAME
FROM A7
WHERE Upper(LNAME) LIKE '%A%A%A%A%' OR Upper(FNAME) LIKE '%A%A%A%A%'
ORDER BY LNAME, FNAME;

但是这只会拉出名字中有四个As或者姓氏中有四个As的名字。我希望它能够在连接的全名中提取总共至少为4的名称。我该怎么做?

4 个答案:

答案 0 :(得分:0)

您可以尝试以下方法

CREATE VIEW A7T8 AS
select FNAME + ' ' + LNAME AS FULLNAME
from [A7]
where len(FNAME  + LNAME) - len(Replace(Upper(FNAME) + Upper(LNAME),'A','')) >= 4
ORDER BY LNAME, FNAME;

答案 1 :(得分:0)

您可以简单地写一下:

CREATE VIEW A7T8 AS
SELECT FNAME || ' ' || LNAME AS FULLNAME
FROM A7
WHERE UPPER(FNAME || ' ' || LNAME) LIKE '%A%A%A%A%'
ORDER BY LNAME, FNAME;

答案 2 :(得分:0)

我认为Concat可以完成这项工作,您必须在查询中使用它,而不是与设计人员联系

CREATE VIEW  [dbo].[DEMO_VIEW]
AS

 SELECT Concat('IND_', LIBELLE)  as SECONDLIBELLE,
        CODE as SECONDCODE

        from dbo.DEMOTABLE

GO

答案 3 :(得分:-1)

使用REGEX。这将首先匹配1-4 A&#39>

创建视图A7T8 AS 选择FNAME || ' ' || LNAME AS FULLNAME 从A7 在哪里CONCAT(上(LNAME),"",上(FNAME))REGEX' [A] {1,4}' 订购LNAME,FNAME;