Перейти к содержимому


Фотография
- - - - -

Опять я со своим SQL :)


  • Пожалуйста, авторизуйтесь, чтобы ответить
12 ответов в этой теме

#1 *soulburner*

*soulburner*

    You have reached level cap

  • True Members
  • PipPipPipPipPip
  • 5 619 сообщений
225
Очень хороший
  • Пол:Мужчина

Опубликовано 16 Февраль 2007 - 01:34

Делаем что-нить типа SELECT * FROM tbl ORDER BY rank

Задача - узнать, на каком месте в результате запроса стоит определенная строчка (например где id=10)
  • 0

#2 n00wbie

n00wbie

    кто здесь? о.О

  • True Members
  • PipPipPipPipPip
  • 2 681 сообщений
0
Обычный

Опубликовано 16 Февраль 2007 - 01:42

тебе имено скл? или может в связке с перлом/пхп/асп/асп.нет?
  • 0
Размещенное изображение
Размещенное изображение
Размещенное изображение
//dpkg --make-me-cheesburger --with-cola --please-fastcgi

#3 *soulburner*

*soulburner*

    You have reached level cap

  • True Members
  • PipPipPipPipPip
  • 5 619 сообщений
225
Очень хороший
  • Пол:Мужчина

Опубликовано 16 Февраль 2007 - 02:23

Ты мне хочешь предложить сделать SELECT, а потом просто найти в результатах строчку? Это и я могу, но это очень медленно будет при больших объемах
  • 0

#4 Sky

Sky

    Advanced Member

  • True Members
  • PipPipPip
  • 60 сообщений
0
Обычный
  • Пол:Мужчина

Опубликовано 16 Февраль 2007 - 04:10

Ты мне хочешь предложить сделать SELECT, а потом просто найти в результатах строчку? Это и я могу, но это очень медленно будет при больших объемах


используй хранимую процедуру и в ней открывай курсор и ходи по результу.
  • 0

#5 n00wbie

n00wbie

    кто здесь? о.О

  • True Members
  • PipPipPipPipPip
  • 2 681 сообщений
0
Обычный

Опубликовано 16 Февраль 2007 - 04:12

Ты мне хочешь предложить сделать SELECT, а потом просто найти в результатах строчку? Это и я могу, но это очень медленно будет при больших объемах

:blink:
  • 0
Размещенное изображение
Размещенное изображение
Размещенное изображение
//dpkg --make-me-cheesburger --with-cola --please-fastcgi

#6 *soulburner*

*soulburner*

    You have reached level cap

  • True Members
  • PipPipPipPipPip
  • 5 619 сообщений
225
Очень хороший
  • Пол:Мужчина

Опубликовано 16 Февраль 2007 - 05:07

используй хранимую процедуру и в ней открывай курсор и ходи по результу.

О-па. Такое я вообще не юзал. Можешь хоть пару ключевых слов дать, чтобы я знал, что искать...
  • 0

#7 Sky

Sky

    Advanced Member

  • True Members
  • PipPipPip
  • 60 сообщений
0
Обычный
  • Пол:Мужчина

Опубликовано 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
  • 0

#8 sbash

sbash

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 239 сообщений
0
Обычный

Опубликовано 18 Февраль 2007 - 12:59

Делаем что-нить типа SELECT * FROM tbl ORDER BY rank

Задача - узнать, на каком месте в результате запроса стоит определенная строчка (например где id=10)


Формулировал бы по русски что хочешь,действительно с указанием что за DBMS. А то реально тебе сейчас с MSSQL-я накидают,а ты на кастрированном MySql сидишь похоже.

И что такое "стоит определенная строчка" ?
  • 0

#9 *soulburner*

*soulburner*

    You have reached level cap

  • True Members
  • PipPipPipPipPip
  • 5 619 сообщений
225
Очень хороший
  • Пол:Мужчина

Опубликовано 19 Февраль 2007 - 00:14

Формулировал бы по русски что хочешь,действительно с указанием что за DBMS. А то реально тебе сейчас с MSSQL-я накидают,а ты на кастрированном MySql сидишь похоже.

И что такое "стоит определенная строчка" ?

У меня MySQL.

Например, я делаю запрос "SELECT * FROM my_tbl ORDER BY rank"

Нужно узнать, каким по счету будет элемент, например с полем id=123 в результатах этого запроса.
  • 0

#10 sbash

sbash

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 239 сообщений
0
Обычный

Опубликовано 20 Февраль 2007 - 00:57

У меня MySQL.

Например, я делаю запрос "SELECT * FROM my_tbl ORDER BY rank"

Нужно узнать, каким по счету будет элемент, например с полем id=123 в результатах этого запроса.


http://www.sql.ru/fo...
  • 0

#11 dima

dima

    Super True Member

  • True Members
  • PipPipPipPipPip
  • 470 сообщений
0
Обычный
  • Пол:Мужчина

Опубликовано 20 Февраль 2007 - 01:46

есть замечательный ресурс http://sql.ru/
помогут, научат, сделают)

http://www.sql.ru/fo...

а меня уже опередили))
  • 0

#12 *soulburner*

*soulburner*

    You have reached level cap

  • True Members
  • PipPipPipPipPip
  • 5 619 сообщений
225
Очень хороший
  • Пол:Мужчина

Опубликовано 20 Февраль 2007 - 02:17

О! спасибо!

буду вкуривать :)
  • 0

#13 *soulburner*

*soulburner*

    You have reached level cap

  • True Members
  • PipPipPipPipPip
  • 5 619 сообщений
225
Очень хороший
  • Пол:Мужчина

Опубликовано 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


Посетителей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных пользователей