SELECT from nobel/ru

From SQLZoo
Language:Project:Language policy English  • русский
nobel
yr subject winner
1960 Chemistry Willard F. Libby
1960 Literature Saint-John Perse
1960 Medicine Sir Frank Macfarlane Burnet
1960 Medicine Peter Madawar
...

nobel Нобелевские лауреаты

Мы продолжаем изучать простые SQL-запросы на одной таблице.

Этот урок посвящён таблице лауреатов Нобелевской премии:

nobel(yr, subject, winner)

где 'yr' – год, 'subject' – предмет номинации, 'winner' – имя победителя.

Using the SELECT statement.

Победители 1950 года

Измените запрос так, чтобы он отображал Нобелевские премии только за 1950 год.

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

1962 год, Литература

Выведите имена победителей премии 1962 года по литературе.

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

Альберт Эйнштейн

Выведите год и номинацию, в которой Альберт Эйнштейн получил Нобелевскую премию.

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

Недавние лауреаты премии мира

Выведите имена лауреатов Нобелевской премии мира, начиная с 2000 года включительно.

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

Литература в 1980-е годы

Выведите все данные (yr, subject, winner) о лауреатах Нобелевской премии по литературе за период с 1980 по 1989 год включительно.

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

Только президенты

Выведите все данные о президентах-лауреатах:

  • Theodore Roosevelt (Теодор Рузвельт)
  • Thomas Woodrow Wilson (Томас Вудро Вильсон)
  • Jimmy Carter (Джимми Картер)
  • Barack Obama (Барак Обама)
SELECT * FROM nobel
 WHERE yr = 1970
  AND subject IN ('Cookery',
                  'Chemistry',
                  'Literature')
SELECT * FROM nobel
 WHERE  winner IN ('Theodore Roosevelt',
  'Thomas Woodrow Wilson',
  'Jimmy Carter',
  'Barack Obama')

Джон

Выведите победителей по имени 'John'

SELECT winner FROM nobel
  WHERE winner LIKE 'John %'

Химия и физика за разные годы

Выведите год, номинацию и имя лауреатов премии по физике за 1980 год вместе с лауреатами премии по химии за 1984 год.

SELECT *
FROM nobel
WHERE (subject='Physics' AND yr=1980) OR
      (subject='Chemistry' AND yr=1984)

Кроме химии и медицины

Выведите год, номинацию и имя лауреатов за 1980 год, исключив химию и медицину.

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

Ранние премии по медицине, поздние — по литературе

Выведите год, номинацию и имя лауреатов премии по медицине за ранние годы — до 1910 года, не включая 1910 год, — вместе с лауреатами премии по литературе за поздние годы — начиная с 2004 года включительно.

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

Задания посложнее

Умляут

Найдите все данные о премии, которую получил PETER GRÜNBERG.

Буква u в его фамилии содержит умлаут — ü. Эта ссылка может быть полезной https://en.wikipedia.org/wiki/%C3%9C#Keyboarding
SELECT *
FROM nobel 
WHERE winner in ('Peter Grünberg')

Апостроф

Найдите все данные о премии, которую получил EUGENE O'NEILL

Нельзя напрямую использовать одинарную кавычку внутри строки, заключённой в одинарные кавычки. Вместо этого укажите две одинарные кавычки подряд.
SELECT *
FROM nobel 
WHERE winner in ('Eugene O''Neill')

Рыцари Её Величества

Рыцари по порядку

Выведите лауреатов, год и номинацию, где имя лауреата начинается с Sir. Сначала выведите самые последние записи, затем отсортируйте их по имени.

SELECT winner, yr, subject
FROM nobel 
WHERE winner LIKE 'Sir%'
ORDER BY yr DESC, winner

Химия и физика — в конце

Выражение subject IN ('chemistry','physics') может использоваться как значение - оно будет равно 0 или 1.

Выведите лауреатов 1984 года и номинации, отсортировав их по номинации и имени лауреата, но химию и физику расположите в конце.

SELECT winner, subject, subject IN ('Physics','Chemistry')
  FROM nobel
 WHERE yr=1984
 ORDER BY subject,winner
select winner, subject
from nobel
where yr=1984 
order by
  CASE WHEN subject in ('Physics','Chemistry') THEN 1 ELSE 0 END,
  subject,winner
  • Served by: po at 2026-07-24T02:06