Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.31;
Скачать: CL | DM;

Вниз

Формирование запроса с условием TOP   Найти похожие ветки 

 
harisma   (2008-03-01 15:17) [0]

Господа мастера.
Есть некоторый набор последовательных запросов, оформленных в виде одного скрипта. Среди этих запросов есть и такой

SELECT TOP <переменная, вычисленная заранее в этом скрипте> FIELD1, FIELD2  ... FROM TABLE WHERE ....

Возник вопрос: Как правильно подставить в запрос эту переменную?

Говорю сразу - вариант типа

declare @s varchar(...)
set @s = "select top " + @переменная + " FIELD1, FIELD2 FROM ..."
exec (@S)

не предлагать!!!


 
b z   (2008-03-01 16:09) [1]

SELECT TOP(<переменная, вычисленная заранее в этом скрипте>) FIELD1, FIELD2  ... FROM TABLE WHERE ....


 
harisma   (2008-03-01 16:16) [2]

А ты это пробовал? Так не работает.


 
b z   (2008-03-01 16:19) [3]

2005 на ура
или SET ROWCOUNT <переменная, вычисленная заранее в этом скрипте>
и не забыть "скинуть" в конце


 
harisma   (2008-03-01 16:34) [4]

А в SQL 2000 ругается
Line 1: Incorrect syntax near "(".

при коде

select top(5) RecID from dictionaries_C3AD665D2FD8E140 as D


то есть даже если явно указывать число в скобках, результата не получится.


 
salexn   (2008-03-01 18:02) [5]

попробуй сначала
SET ROWCOUNT
потом селект
затем
SET ROWCOUNT 0 (чтобы больше не было ограничений)


 
harisma   (2008-03-01 18:27) [6]


> попробуй сначала
> SET ROWCOUNT
> потом селект

Так в принципе работает, но для моей задачи не подходит. Дело в том, что этот запрос с условием TOP я хочу использовать в следующей конструкции:

SELECT ... FROM TABLE_1
WHERE ... AND (FIELD1 IN (SELECT TOP <Число записей> FIELD1 FROM TABLE_2...)) AND (FIELD2 IN (SELECT TOP <> FIELD2 FROM TABLE_3 WHERE ...))

Все это должно работать под SQL 2000 и даже SQL 7.0, так что варианты для SQL 2005 не предлагать.
А может кто имеет что предложить как вообще такой скрипт по другому переписать, чтоб не иметь этих менингитов с TOP?


 
DiamondShark ©   (2008-03-03 17:02) [7]


> harisma   (01.03.08 18:27) [6]

выбирай сначала во временные таблицы



Страницы: 1 вся ветка

Текущий архив: 2008.08.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1215775411
Nous Mellon_
2008-07-11 15:23
2008.08.31
Сокеты, php, ftp -- вопрос специалистам


15-1215672165
ееееееекенитен
2008-07-10 10:42
2008.08.31
есть ли обновляемый список сайтов с играми/ порнухой и пр?


10-1145287099
Yanis
2006-04-17 19:18
2008.08.31
Добавить свой track bar в Volume Control


15-1216025897
MMuxa
2008-07-14 12:58
2008.08.31
Virtual Treeview


15-1215818767
Kostafey
2008-07-12 03:26
2008.08.31
С днем рождения ! 12 июля