列出所有学生的名字,姓氏和课程ID 由Tony Richardson,Dennis Viehland或Kay控制的课程 菲尔登。按课程ID的升序排序您的输出。
我正在准备一个SQL测试,通过做一组上述问题的练习。我有一个以下的答案,使用这样的where子句作为名称:
where SF_F_Name in ('Tony','Dennis','Kay') and SF_L_Name in ('Richardson','Viehland','Fielden')
我一直试图找到一种方法来寻找名字和姓氏的特定组合,因为这种where子句可能会返回一个" Kay Richardson"。怎么能实现这一目标?我还没有找到任何如何做的例子。
答案 0 :(得分:4)
你自己指出了WHERE
条款中的缺陷。只需单独检查全名即可避免此问题:
WHERE (SF_F_Name = 'Tony' AND SF_L_Name = 'Richardson') OR
(SF_F_Name = 'Dennis' AND SF_L_Name = 'Viehland') OR
(SF_F_Name = 'Kay' AND SF_L_Name = 'Fielden')
您还可以将名字和姓氏列连接在一起,然后使用单个WHERE IN
检查全名:
WHERE SF_F_NAME || ' ' || SF_L_Name IN
('Tony Richardson', 'Dennis Viehland', 'Kay Fielden')
答案 1 :(得分:1)
在标准SQL中,这可以写成:
{{1}}
Postgres,Oracle和DB2支持(至少)