我在我的sql查詢中遇到了一些問題。SQL查詢最大值和最小值
我有一個表table_name與以下字段:id,zip,大小。此表中有3個條目,「zip」字段的條目是2001,2005,2009,所有三個條目的「大小」值都是5。我想要根據我的搜索字段的最大值和最小值。
當我搜索2001年和2009年之間的任何值,然後查詢得到完美的結果,每查詢。
例子:如果我搜索字段值2003則給出了兩個最小值2001最大值2005
但是,當我搜索不到2001年或2009年比任何較大值,那麼它給空的結果。
任何人都可以告訴我在我的查詢中我做了什麼錯誤。
SELECT * FROM `table_name`
WHERE `size` LIKE ('%5%')
AND (`zip` in (SELECT max(`zip`)
FROM `table_name`
WHERE `zip` < '2010'
order by `zip` desc)
OR `zip` in (SELECT min(`zip`)
FROM `table_name`
WHERE `zip` > '2010'
order by `zip` asc)
)
'zip'字段是數字還是char字段?此外,什麼數據類型是'大小'字段? – krowe
您已使用'MySQL','SQL-Server'和'SQL-Server-2008'標記,但這看起來像'MySQL'語法。你實際使用哪個DBMS? – GarethD
搜索2010年時應該返回2009年。如果不是這可能是由於錯誤的數據類型。順便說一句,你不需要在標量子查詢中使用ORDER BY。 – dnoeth