Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.08.31;
Скачать: [xml.tar.bz2];

Вниз

Формирование запроса с условием 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
2-1216816296
lavgirls
2008-07-23 16:31
2008.08.31
Програ для отображения трафика


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


15-1215962143
Дмитрий_С
2008-07-13 19:15
2008.08.31
Время жизни объекта.


2-1216705568
kukuikar
2008-07-22 09:46
2008.08.31
Как подключить удаленный реестр?


15-1215912547
AFHU
2008-07-13 05:29
2008.08.31
Имя России. Исторический выбор-2008





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский