|
问题来自于《SQL puzzles and answers》一书的第36个Puzzle。问题的描述很简单,书中给出了很多种解答,我只能想到其中的1、2种,故在这里进行一下分享。有意思的是书中的解法1是无法通过SQL解析的,大家可以查看原书并进行尝试。本文中的解法在SQL Server 2008中测试通过,可能与原书有部分差异。
问题描述
我们有一张权责表:
person | role |
Smith | O |
Smith | D |
Jones | O |
White | D |
Brown | X |
表中包含2列,person列中存储人名,role列中存储职责代码,O代表Officer,D代表Director等等。创建表的脚本:
use tempdb;
create table Roles
(
person char(5) not null,
role char(1) not null
);
insert into
Roles
(
person,
role
)
values
('Smith', 'O'),
('Smith', 'D'),
('Jones', 'O'),
('White', 'D'),
('Brown', 'X');
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。