选择列B的最小值,其中列B = 1

时间:2016-11-22 13:49:17

标签: sql sql-server

我有这张表AVERAGE

enter image description here

我想

select * from table where VhrNum=MIN(VhrNum) and EmptyOrNot=1

我已经尝试过此查询,但它无效

select * 
from   Average 
where  Itmnum='1' 
   and VhrNum = (
                  select  MIN(VhrNum) 
                  from    (
                             select * 
                             from   Average 
                             where  EmptyOrNot = '1'
                          )
                )

在我的情况下,它应该选择第三行

5 个答案:

答案 0 :(得分:3)

为什么不从列top 1行和order by开始?

SELECT TOP 1 * 
FROM [table]
WHERE EmptyOrNot=1
ORDER BY VhrNum

答案 1 :(得分:2)

TOP 1ORDER BY

一起使用
select Top 1 * from table where EmptyOrNot=1
Order by VhrNum ASC

如果您有多条VhrNum分钟的记录,并且想要所有领带记录,请使用TOP 1 WITH TIES

select Top 1 With Ties * from table where EmptyOrNot=1
Order by VhrNum ASC

答案 2 :(得分:0)

您可以尝试这样

extension String {
    var digits: String {
    return components(separatedBy: CharacterSet.decimalDigits.inverted)
        .joined(separator: "")
    }
}

let test = "Hello 54-Today is 112216"
let fixed = test.digits
print(fixed) //54112216

答案 3 :(得分:0)

汇总功能需要GROUP BY - 或者您可以ORDER BY并选择第一个。

汇总不会让你做SELECT *,这无论如何都不是很好的做法,汇总让你更清楚你实际上是想要获得{{1} } 这个的。 MIN允许您执行TOP 1/ORDER BY,但可能不太清楚,您真正想要得到的只是SELECT *

骨料:

MIN(VhrNum)

SELECT MIN(VhrNum)
FROM Average
WHERE EmptyOrNot = 1
GROUP BY EmptyOrNot

答案 4 :(得分:0)

你可以试试这个:

select top 1 * from table where VhrNum= (select min(VhrNum) from table);
相关问题