使用另一个表SQL Oracle中的数据查询名称的第一个字母

时间:2013-04-11 12:56:50

标签: sql oracle

我真的希望有人可以帮助我。到目前为止,这个问题已经打败了我。我有一张表格,其中包含每个人参加会议的次数。我需要使用参加人数最多的人的第一个字母来查询另一个以相同字母开头的表格中的姓名。我会很感激任何建议。

3 个答案:

答案 0 :(得分:1)

如果您有一个包含总列的员工姓名表,则可以执行此类操作:

select *
  from other_tab ot
       inner join (select substr(emp_name, 1, 1) first_letter, 
                          rank() over (order by attendences desc) rnk
                     from emp_meeting_count) mc 
               on ot.name like mc.first_letter ||  '%'
 where mc.rnk = 1;

我使用了rank(),因为两个或更多员工的出勤率可能最高

小提琴:http://sqlfiddle.com/#!4/2951d/1

答案 1 :(得分:0)

你可以使用Like运算符来实现这个场景

SQL WILDCARDS可用于搜索表格中的数据。

SQL通配符与SQL LIKE运算符一起使用。

Syntax

SELECT [* | column_list]

FROM <table_name> WHERE ( column_name)

LIKE <wildcards>;

实施例

SELECT cust_code,cust_name,cust_city,cust_country  
FROM customer  
WHERE cust_name LIKE 'S%';

请参阅以下链接以获取信息

http://www.w3resource.com/sql/wildcards-like-operator/wildcards-like-operator.php

http://www.w3schools.com/sql/sql_like.asp

http://msdn.microsoft.com/en-us/library/ms179859.aspx

答案 2 :(得分:0)

会像这样的工作吗?我正在写作假设

table_abc包含人名和出勤人数 table_xyz是另一个要检查的表

select result_xyz.* from 
(select substr(name,1,1) valueA from table_abc 
where attendance_count=(select max(attendance_count) from table_abc)) result_abc, 
(select substr(name,1,1) valueB,name from table_xyz) result_xyz
where result_abc.valueA=result_xyz.valueB