SQLZOO(中文版)习题答案_SELECT from nobel

SQL 专栏收录该内容
11 篇文章 0 订阅

SELECT from Nobel Tutorial/zh

-数据准备

nobel 諾貝爾獎得獎者
我們繼續練習簡單的單一表格SQL查詢。
這個教程是有關諾貝爾獎得獎者的:
nobel(yr, subject, winner)
yr: 年份
subject: 獎項
winner: 得獎者

1.更改查詢以顯示1950年諾貝爾獎的獎項資料。

SELECT yr, subject, winner  
FROM nobel 
WHERE yr = 1950

2.顯示誰贏得了1962年文學獎(Literature)。

SELECT winner  
FROM nobel 
WHERE yr = 1962 AND subject = 'Literature'

3.顯示“愛因斯坦”(‘Albert Einstein’) 的獲獎年份和獎項。

SELECT yr,subject  
FROM nobel 
WHERE winner = 'Albert Einstein' 

4.顯示2000年及以後的和平獎(‘Peace’)得獎者。

SELECT winner 
FROM nobel
WHERE yr>=2000 AND subject='Peace'

5.顯示1980年至1989年(包含首尾)的文學獎(Literature)獲獎者所有細節(年,主題,獲獎者)。

SELECT yr,subject,winner 
FROM nobel  
WHERE subject='Literature' AND yr BETWEEN 1980 AND 1989 

6.顯示總統獲勝者的所有細節:● 西奧多•羅斯福 Theodore Roosevelt● 伍德羅•威爾遜 Woodrow Wilson● 吉米•卡特 Jimmy Carter

SELECT * FROM nobel 
WHERE winner IN ('Theodore Roosevelt', 'Woodrow Wilson','Jimmy Carter')

7.顯示名字為John 的得獎者。 (注意:外國人名字(First name)在前,姓氏(Last name)在後)

SELECT winner 
FROM nobel 
WHERE winner LIKE 'John%'

8.顯示1980年物理學(physics)獲獎者,及1984年化學獎(chemistry)獲得者。

SELECT * 
FROM nobel 
WHERE (yr=1980 AND subject='physics') OR (yr=1984 AND subject='chemistry')

9.查看1980年獲獎者,但不包括化學獎(Chemistry)和醫學獎(Medicine)。

SELECT * 
FROM nobel 
WHERE yr=1980 AND subject NOT IN ('Medicine','Chemistry') 

10.顯示早期的醫學獎(Medicine)得獎者(1910之前,不包括1910),及近年文學獎(Literature)得獎者(2004年以後,包括2004年)。

SELECT * 
FROM nobel 
WHERE (yr<1910 AND subject='Medicine') or (yr>=2004 AND subject='Literature')

11.Find all details of the prize won by PETER GRÜNBERG

SELECT * FROM nobel WHERE winner='PETER GRÜNBERG'

12.查找尤金•奧尼爾EUGENE O’NEILL得獎的所有細節 Find all details of the prize won by EUGENE O’NEILL

SELECT * 
FROM nobel   
WHERE winner='EUGENE O''NEILL'

13.騎士列隊 Knights in order列出爵士的獲獎者、年份、獎頁(爵士的名字以Sir開始)。先顯示最新獲獎者,然後同年再按名稱順序排列。

SELECT winner,yr,subject 
FROM nobel 
WHERE winner like 'Sir%'ORDER BY yr desc,winner

14.The expression subject IN (‘Chemistry’,‘Physics’) can be used as a value - it will be 0 or 1.Show the 1984 winners and subject ordered by subject and winner name; but list Chemistry and Physics last.

SELECT winner, subject 
FROM nobel 
WHERE yr=1984 
ORDER BY subject in('Chemistry','Physics'),subject,winner

subject in()条件是一个Boolean表达式,1是true 0是false. 因此baifalses会显du示在trues的前面。意思就是如果subject不在(‘Physics’,‘Chemistry’)里面,zhi结果就是false,应该显示在true的前面。所以Physics 和 Chemistry会显示在最后。

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页

打赏

阿尔卑斯少女

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值