|
У молодого хакера спрашивают: - Максим, ну
что тебе нравится, кроме женщин и компьютеров? - Как что?
Девушки и калькуляторы. |
Иногда схема данных требует, чтобы набор данных имел вычисляемый
результат. В приложениях Delphi в случае использования SQL это
возможно, но эта технология немного разнится в зависимости от
используемого типа данных.
Для локального SQL, включая таблицы Paradox и dBASE, вычисляемому
полю дают имя с использованием ключевого слова AS. При этом
допускается ссылаться на такое поле для задания порядка сортировки с
помощью ключевой фразы ORDER BY в SQL-запросе. Например, используя
демонстрационную таблицу ITEMS.DB: SELECT I."PARTNO", I."QTY", (I."QTY" * 100) AS TOTAL
FROM "ITEMS.DB" I
ORDER BY TOTAL В данном примере вычисляемому полю было
присвоено имя TOTAL (временно, только для ссылки), после чего оно
стало доступным в SQL-запросе для выражения ORDER BY.
Вышеуказанный метод не поддерживается в InterBase. Тем не менее,
сортировать вычисляемые поля в таблицах InterBase (IB) или сервере
Local InterBase Server все же возможно. Вместо использования имени
вычисляемого поля, в выражении ORDER BY используется порядковое
число, представляющее собой позицию вычисляемого поля в списке полей
таблицы. Например, используя демонстрационную таблицу EMPLOYEE
(расположенную в базе данных EMPLOYEE.GDB): SELECT EMP_NO, SALARY, (SALARY / 12) AS MONTHLY
FROM EMPLOYEE
ORDER BY 3 DESCENDING В то время, как таблицы IB и LIBS
используют второй метод, и не могут воспользоваться первым, оба
метода доступны при работе с локальным SQL. К примеру, используя
SQL-запрос для таблицы Paradox, и приспосабливая его для работы с
относительной позицией вычисляемого поля, а не его именем: SELECT I."PARTNO", I."QTY", (I."QTY" * 100) AS TOTAL
FROM "ITEMS.DB" I
ORDER BY 3 |