Как выбрать только 1 строку в sybase без использования rowcount - PullRequest
1 голос
/ 22 января 2011

Как выбрать только 1 строку в sybase без использования rowcount?У меня нет привилегии set rowcount в Sybase.Есть ли способ выбрать только 1 строку?

Например:

select * from table where name = 'jack' 

Возвращает две строки;как выбрать только одну строку из набора результатов без использования set rowcount?

Ответы [ 3 ]

11 голосов
/ 22 января 2011

Попробуйте запрос:

SELECT TOP 1 * FROM mytable
WHERE name = 'jack'

Как вы можете догадаться, это выберет результаты поиска ТОП 1.Если вам нужно больше (чего у вас нет), вы можете использовать любое число (TOP 100 или TOP 1000 и т. Д.).

Более подробный пример можно найти в w3schools: http://www.w3schools.com/Sql/sql_top.asp

0 голосов
/ 12 октября 2018

Если вы хотите получить один результат, используйте «GROUP BY» и «HAVING column = max (column)». Или замените max () на min (). Это должно работать, если значения max или min также не являются уникальными.

0 голосов
/ 16 марта 2011

Кажется, есть причина, почему вы получаете более 1 строки для "WHERE name = 'jack'", похоже, что строки различаются.

Но если строки неВ отличие от этого, вы можете попробовать добавить «Different»:

SELECT DISTINCT * FROM TABLE WHERE name = 'jack'

или попробовать с помощью оператора «GROUP BY», тогда вы должны явно ввести все столбцы, например:не то, что вы хотели, вы можете вставить здесь, как точно выглядят 2 строки?

...