Опять я со своим SQL :)
#1
Опубликовано 16 Февраль 2007 - 01:34
Задача - узнать, на каком месте в результате запроса стоит определенная строчка (например где id=10)
#2
Опубликовано 16 Февраль 2007 - 01:42
//dpkg --make-me-cheesburger --with-cola --please-fastcgi
#3
Опубликовано 16 Февраль 2007 - 02:23
#4
Опубликовано 16 Февраль 2007 - 04:10
Ты мне хочешь предложить сделать SELECT, а потом просто найти в результатах строчку? Это и я могу, но это очень медленно будет при больших объемах
используй хранимую процедуру и в ней открывай курсор и ходи по результу.
#5
Опубликовано 16 Февраль 2007 - 04:12
Ты мне хочешь предложить сделать SELECT, а потом просто найти в результатах строчку? Это и я могу, но это очень медленно будет при больших объемах
//dpkg --make-me-cheesburger --with-cola --please-fastcgi
#6
Опубликовано 16 Февраль 2007 - 05:07
О-па. Такое я вообще не юзал. Можешь хоть пару ключевых слов дать, чтобы я знал, что искать...используй хранимую процедуру и в ней открывай курсор и ходи по результу.
#7
Опубликовано 16 Февраль 2007 - 21:35
О-па. Такое я вообще не юзал. Можешь хоть пару ключевых слов дать, чтобы я знал, что искать...
ключевые слова declare cursor, fetch.
вот вырезал из проекта для ms sql - в вопросе не было написано какая база. В sybase также.
Почитай www.sql.ru
DECLARE @a1 float, @litr1 float, @a2 float, @litr2 float
select @a1=0, @a2=0, @litr1=0, @litr2=0
OPEN class_cursor
FETCH NEXT FROM class_cursor
INTO @car_id , @voltes , @rel , @litres , @v_bort
WHILE @@FETCH_STATUS = 0
BEGIN
if @rel<= @input_rel select @a1=@rel, @litr1=@litres
if (@input_rel<=@rel) and (@input_rel>=@a2) select @a2=@rel,@litr2=@litres
FETCH NEXT FROM class_cursor
INTO @car_id , @voltes , @rel , @litres , @v_bort
END
CLOSE class_cursor
DEALLOCATE class_cursor
#8
Опубликовано 18 Февраль 2007 - 12:59
Делаем что-нить типа SELECT * FROM tbl ORDER BY rank
Задача - узнать, на каком месте в результате запроса стоит определенная строчка (например где id=10)
Формулировал бы по русски что хочешь,действительно с указанием что за DBMS. А то реально тебе сейчас с MSSQL-я накидают,а ты на кастрированном MySql сидишь похоже.
И что такое "стоит определенная строчка" ?
#9
Опубликовано 19 Февраль 2007 - 00:14
У меня MySQL.Формулировал бы по русски что хочешь,действительно с указанием что за DBMS. А то реально тебе сейчас с MSSQL-я накидают,а ты на кастрированном MySql сидишь похоже.
И что такое "стоит определенная строчка" ?
Например, я делаю запрос "SELECT * FROM my_tbl ORDER BY rank"
Нужно узнать, каким по счету будет элемент, например с полем id=123 в результатах этого запроса.
#10
Опубликовано 20 Февраль 2007 - 00:57
У меня MySQL.
Например, я делаю запрос "SELECT * FROM my_tbl ORDER BY rank"
Нужно узнать, каким по счету будет элемент, например с полем id=123 в результатах этого запроса.
http://www.sql.ru/fo...
#11
Опубликовано 20 Февраль 2007 - 01:46
#12
Опубликовано 20 Февраль 2007 - 02:17
буду вкуривать
#13
Опубликовано 20 Февраль 2007 - 04:03
Вобщем, надыбал такой запрос. Не совсем дорубаю, как оно работает - мозг в трубочку сворачивается. Но как-то работает:
SELECT count(1) from users t1 inner join users t2 on t1.rank <= t2.rank and t2.id = 5 /* Вместо 5 подставляем нужный нам id */ group BY t2.id
Посетителей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных пользователей