Программирование >>  Преобразование значений null 

1 ... 212 213 214 [ 215 ] 216 217 218 219


6 JING

7 BRIAN

8 KAY

9 GILLIAN

10 CHAD

Чтобы выбрать самых старших студентов, просто выбираем строки, в которых AGE = OLDEST.

Оригинальное решение

В оригинальном решении поиск всех студентов, для которых есть старший студент, осуществляется посредством рефлексивного объединения в подзапросе. Внешний запрос возвращает всех студентов таблицы STUDENT, которых нет среди выбранных подзапросом. Эту операцию можно сформулировать как найти всех студентов, которых нет среди тех студентов, которые младше, чем, по крайней мере, один студент :

select *

from student where age not in (select a.age

from student a, student b where a.age < b.age)

Подзапрос использует декартово произведение, чтобы найти все возрасты в А, которые меньше, чем все возрасты в В. Единственный возраст, который не будет меньше любого другого, - наибольший. Его подзапрос не возвращает. Во внешнем запросе с помощью оператора NOT IN выбираются все строки таблицы STUDENT, значений AGE которых нет среди значений AGE, возвращенных подзапросом (если возвращается A.AGE, это означает, что в таблице STUDENT есть значение AGE, больше данного). Если есть какие-то трудности с пониманием того, как все это получается, рассмотрим следующий запрос. По сути, оба запроса работают одинаково, но приведенный ниже, наверное, проще:

select *

from student where age >= all (select age from student)



Алфавитный указатель

Специальные символы

% (остаток от деления), функция (SQL

Server), 218, 322, 326 % (подстановка), оператор, 46 + (конкатенация), оператор (SQL

Server), 39, 344 (подчеркивание), оператор, 46 (конкатенация), оператор (DB2/

Oracle/PostgreSQL), 39, 343

ADD MONTHS, функция (Oracle), 232,

233,273,315,332 ADDDATE, функция (MySQL), 273,

316, 326, 335

AVG, функция, 197 C

CAST, функция (SQL Server), 326

CEIL, функция (DB2/MySQL/Oracle/

PostgreSQL), 443, 444 CEILING, функция (SQL Server), 443, 482

COALESCE, функция, 44, 97, 198, 223, 357

CONCAT, функция (MySQL), 39, 325, 343

CONNECT BY, блок (Oracle) поддержка версиями, 247

CONNECT BY, оператор (Oracle) альтернативы, 516 в иерархических структурах, 519,

и вложенные представления, 374 и оператор WITH, 374, 412 поддержка версиями, 302, 329 CONNECT BY ISLEAF, функция

(Oracle), 524, 528

CONNECT BY ROOT, функция (Oracle), 524, 528

COUNT OVER, оконная функция, 263,

486, 603

COUNT, функция, 203, 205, 597, 607

CREATE TABLE ... LIKE, команда

(DB2), 104 CREATE TABLE, команда, 103 CUBE, расширение, 467, 477 CURRENT DATE, функция (DB2/

MySQL/PostgreSQL), 251, 294, 412

DATE, функция (DB2), 322 DATE ADD, функция (MySQL), 233,

237, 270, 316, 318 DATE FORMAT, функция (MySQL),

237, 251, 276, 340 DATE TRUNC, функция (PostgreSQL),

254, 269, 274, 279, 334 DATEADD, функция (MySQL), 251 DATEADD, функция (SQL Server), 233,

273, 280

DATEDIFF, функция (MySQL/SQL

Server), 235, 242, 244, 258, 273 DATENAME, функция (SQL Server),

238, 248, 257, 338, 340 DATEPART, функция (SQL Server),

275, 277, 286, 316, 319 DAY, функция (DB2), 275, 277, 279 DAY, функция (MySQL), 271, 278, 279,

DAY, функция (SQL Server), 272, 278, 280

DAYNAME, функция (DB2/MySQL/

SQL Server), 236, 338 DAYOFWEEK, функция (DB2/MYSQL),

293, 339

DAYOFYEAR, функция (DB2/MySQL/ SQL Server), 267, 272, 331, 335, 336



DAYS, функция (DB2), 244, 25S, 272 DB2

значения DATE в операторе ORDER

BY, 4S9 специальные рецепты, 23 DECODE, функция (Oracle), 3S6, 562, 5SS

DEFAULT VALUES, блок (PostgreSQL/

SQL Server), 101 DEFAULT, ключевое слово, 101

DELETE, команда, 115, 116

DENSE RANK OVER, ранжирующая функция (DB2/Oracle/SQL Server),

390, 400, 551, 552 DENSE RANK, функция (DB2/Oracle/

SQL Server), 3S9, 405, 409 DISTINCT, ключевое слово

альтернативы, 63, 401

и список SELECT, 49, 403, 592 применение, 69, S7, 3S9

EXCEPT, функция, 6S, 69, 77, SO EXTRACT, функция (PostgreSQL/ MySQL), 242, 370

GENERATE SERIES, функция (PostgreSQL)

альтернативы, 255, 305, 333, 521 использование, 24S параметры, 376 применение, 265, 269, 2S4, 375 GETDATE, функция (SQL Server), 412, 414

GROUP BY, запросы, возвращение столбцов, не вошедших в них, 461

GROUP BY, оператор, 49, 403, 599, 601 GROUPING SETS, расширение (DB2/

Oracle), 471, 473 GROUPING, функция (DB2/Oracle/SQL

Server), 463, 464, 477, 49S GROUPING, функция (MySQL/

PostgreSQL), 497

HOUR, функция (DB2), 275

IF-ELSE, операции, 39

INSERT ALL, выражение (Oracle), 105 INSERT FIRST, выражение (Oracle), 105 INSERT, выражение, 100, 103 INSTR, функция (Oracle), 541, 542, 546 INTERSECT, операция, 66, 67 INTERVAL, ключевое слово, 232, 233, 234

IS NULL, оператор, 44 ITERATE, команда (Oracle), 375 ITERATION NUMBER, функция (Oracle), 375

JOIN, оператор

в операторе FROM, 65 поддержка Oracle, 370

KEEP, расширение (Oracle), 214, 215, 40S, 409

LAG OVER, оконная функция (Oracle),

354, 366, 367, 397, 39S, 399, 437 LAG, функция (Oracle), 260 LAST, функция (Oracle), 405, 409 LAST DAY, функция (MySQL/Oracle),

265, 266, 27S, 279, 2SS

LEAD OVER, оконная функция (Oracle)

варианты, 361, 395, 39S, 399 и дубликаты, 360

и рефлексивные объединения, 345,

347, 349, 352

определение временных интервалов,

поддержка версиями, 259 преимущества, 260 применение, 352, 354, 394, 395, 397 LEAD, функция (Oracle), 260, 261

LIKE, оператор, 45

LIMIT, оператор (MySQL/PostgreSQL),

41, 379, 3S1 LPAD, функция (Oracle/PostgreSQL/

MySQL), 359, 451 LTRIM, функция (Oracle), 510

MAX OVER, оконная функция, 199,391,

39S, 5S6, 5S7 MAX, функция, 199, 239



1 ... 212 213 214 [ 215 ] 216 217 218 219

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика