SQL从连接字符串中选择特定字母

时间:2017-03-28 17:36:24

标签: sql string oracle concatenation

这可能在某处得到了类似的答案,但我仍然有些困惑。我需要创建一个名为A7T7的视图,它将显示连接的名字和姓氏至少有三个字母Os或三个字母Ts的学生的连接的名字和姓氏(例如,John Olson,Richard Hooton,Tina Trout)。列标题应为Student,行应按连接名称的长度排序,从长到短。

不确定如何为此限制制作我的WHERE语句。

1 个答案:

答案 0 :(得分:1)

您可以使用LIKE查询 - 例如(使用SQL Server的表变量):

CREATE TABLE #students (firstname varchar(20), lastname varchar(20));

INSERT ALL
  INTO #students VALUES ('John','Olson')
  INTO #students VALUES ('Richard','Hooton')
  INTO #students VALUES ('Tina','Trout')
SELECT 1 FROM dual;     

SELECT *
FROM #students s
WHERE CONCAT(s.firstname, s.lastname) LIKE '%o%o%o%';

DROP TABLE #students;

大致转换为"从学生中选择所有行,其中firstname和lastname的串联包含o三次"。