2012-06-27 3 views
1

У меня есть запрос select, который возвращает список данных, и мне нужно вернуть все строки с самым низким общим уровнем.Возвращение нескольких строк с наименьшим значением

SELECT code, level 
FROM table 
ORDER BY level 

Для примера

code | level 
-----+------ 
A01 | 3 
B56 | 3 
J33 | 4 
J35 | 4 
K56 | 4 

Я хотел бы вернуть все результаты с наименьшим значением уровня, так и в этом случае было бы

A01 | 3 
B56 | 3 

Я попытался с помощью MIN(level), но это только возвращает верхнюю строку.

ответ

4
SELECT TOP 1 WITH TIES code, level 
FROM table 
ORDER BY level 
+0

+1 Круто, 'с ties' нового в SQL 2012? – Andomar

+0

@Andomar - Нет, он был там с [по крайней мере 2000] (http://msdn.microsoft.com/en-us/library/aa259187 (v ​​= sql.80) .aspx) –

+0

Спасибо! Очень простое решение, особенно когда запросы становятся более сложными! – Elliott

1
SELECT * 
FROM mytable 
WHERE level IN (SELECT Min(level) 
       FROM mytable) 
order by level 
Смежные вопросы