Я могу получить положение записи в таблице результата SQL?

Кроме того, вы можете проверить, определено ли $(this).prev().length, например:

if (!$(this).prev().length){ //This means $(this is the first child
    //do stuff
}
7
задан Machavity 28 January 2019 в 00:25
поделиться

5 ответов

Вы можете подсчитать количество записей, в которых значение, которое вы сортируете, имеет меньшее значение, чем запись, значение ключа которой вам известно:

select count(*)
from mytable
where mycolumn < (select mycolumn from mytable where key = 42)
22
ответ дан 6 December 2019 в 04:59
поделиться

В базах данных, которые его поддерживают, вы можете использовать для этой цели ROW_NUMBER ():

SELECT RowNr
FROM (
    SELECT 
         ROW_NUMBER() OVER (ORDER BY mycolumn) AS RowNr,
         mycolumn
    FROM mytable
) sub
WHERE sub.mycolumn = 42

В примере предполагается, что вы ищете первичный ключ 42 :)

Подзапрос необходим, потому что что-то вроде:

SELECT 
     ROW_NUMBER() OVER (ORDER BY mycolumn) AS RowNr
FROM mytable
WHERE sub.mycolumn = 42

Всегда возвращает 1; ROW_NUMBER () работает, так сказать, после WHERE.

19
ответ дан 6 December 2019 в 04:59
поделиться

SQL так не работает. Он основан на наборах, что означает, что «позиция в этой таблице результатов» не имеет смысла для базы данных.

Вы можете отслеживать позицию, когда вы отображаете ResultSet в коллекцию объектов или когда вы перебираете его.

Вы можете отслеживать позицию, когда вы отображаете ResultSet в коллекцию объектов или когда вы перебираете его.

Вы можете отслеживать позицию, когда вы отображаете ResultSet в коллекцию объектов или когда вы перебираете его.

2
ответ дан 6 December 2019 в 04:59
поделиться

Невозможно сказать это, не выбрав все подмножество записей. Если ваш ПК имеет целочисленный тип, вы можете

select count(*) from mytable 
    where id <= 10 -- Record with ID 10
    order by mycolumn asc
-1
ответ дан 6 December 2019 в 04:59
поделиться

К сожалению, вы не можете получить «позицию строки в таблице».

Лучшее, что вы можете получить, используя ORDER BY и вариант конструкции ROW_NUMBER (зависит от движка базы данных используется), - это позиция строки в наборе результатов выполненного запроса.

Эта позиция не отображается обратно ни в одну позицию в таблице, если только ORDER BY не находится в наборе столбцов кластеризованного индекса, но даже тогда эта позиция может быть признана недействительной в следующую секунду.

Я хотел бы знать, для чего вы намеревались использовать эту «позицию».

0
ответ дан 6 December 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: