Как с помощью select выбрать всего одну запись...?
Как с помощью select выбрать всего одну запись, удовлетворяющую некоторому критерию?
Цитата:
On 2001-11-14 1438, Adonis wrote
Как с помощью select выбрать всего одну запись, удовлетворяющую некоторому критерию?
select * from table limit 1
это для MySQL и Oracle
для InterBase это возможно только в последних билдах FireBird. Про остальные - не знаю...
Цитата:
On 2001-11-14 1438, Adonis wrote
Как с помощью select выбрать всего одну запись, удовлетворяющую некоторому критерию?
Select Top 1 * From Ваша_Таблица Where Столбец_По_Которому_Производится_Отбор Условие
Это MS SQL Server
У меня Interbase 6.0, но почему-то не один из приведеных Вами примеров не работает. Может для Interbase есть какие-то особенности синтаксиса.....
В mysql все было просто LIMIT num,cnt
А вот с Oracle'ом мне не разобраться.
Может кто посоветует.
select * from table_name where rownum < some_count;
А вот с InterBase, проблемка
Я думаю, что это можно как-то обойти, но не знаю как. Может кто подскажет.
А ты пробовал вьюшку создать? По-моему это вариант.
Так это что получается, мне для каждого способа сортировки сохдавать свою вьюшку ???
в InterBase это(создание процедуры) будет выглядеть так:
SET TERM ;/
CREATE PROCEDURE CUSTOMER_S RETURNS (
N INTEGER,
ID INTEGER,
DATE_SEM DATE,
REVISION VARCHAR(50),
TELEPHON VARCHAR(30)
) AS
BEGIN
N=0;
FOR
SELECT ID,DATE_SEM,REVISION,TELEPHON FROM SEMINAR
INTO :ID,:DATE_SEM,:REVISION,:TELEPHON
DO
BEGIN
N=:N+1;
SUSPEND;
END
END/
SET TERM /;
потом "говоришь" SELECT * FROM CUSTOMER_S;
и тебе будет выдана "таблица" вида:
"уникальный номер";id;DATE_SEM ....
т.е. первый столбец будет содержать номер записи от 1 до n ...