SQL选择语句Where子句

时间:2016-04-30 07:11:41

标签: sql ms-access where

  

列出所有学生的名字,姓氏和课程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"。怎么能实现这一目标?我还没有找到任何如何做的例子。

2 个答案:

答案 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支持(至少)