查询
select min Price, min year from tblProduct
返回空(“”)结果。我只想要数字结果。我该怎么做?
示例:
tblProduct
Price Year
1000 2008
2000 2009
500 2001
2005
200 2000
结果是价格“”,2000年。我希望结果是价格200,2000年
答案 0 :(得分:3)
这将给出每年的最低价值
Select min(p.price) , year
from
tblProduct p
WHERE p.price <> ''
Group by
p.year
这将为您提供最低价格的年份和价格。
如果超过一年的最低价格
,这可能会导致多行Select p.year, p.price from
tblProduct p inner join
(Select min (Price) price
from tblProduct where price is not null) minP
on p.price = minp.Price
答案 1 :(得分:3)
首先,你的RDBMS是什么?对于我尝试过的(MySQL和PostgreSQL),MIN忽略NULL。
因此,我假设您的列的类型为varchar或text。这对价格没有意义,所以我建议您将其更改为数字类型。
如果你不想,那我就用这样的东西:
SELECT MIN(price), MIN(year)
FROM tblProduct
WHERE price <> ''
将返回(200,2000)。但实际上,它没有意义。您想使用数字类型,并且您希望使用NULL而不是使用空字符串。
答案 2 :(得分:1)
试试这个
SELECT MIN(Price) AS Price, MIN(Year) AS Year
FROM tblProduct
HAVING (MIN(Price) IS NOT NULL) OR
(MIN(Price) <> '')
答案 3 :(得分:0)
如果数据集中存在NULL,则MIN,MAX,SUM,AVG和某些其他聚合将返回NULL。你想使用:
SELECT ISNULL(MIN(Price),0) as MinPrice, ISNULL(MIN(Year),0) as MinYear FROM tblProduct