我想在查詢中在varchar列中的十進制值之間進行比較。 的比較應該是最大的,如果年齡低於最低年齡* 10組識別符號每個將varchar轉換爲查詢中的十進制和比較值
例如最高(年齡列是VARCHAR):
ID | Name | Age | GroupID
--------------------------
1 | AAA | 10.1 | 1
2 | BBB | 11 | 1
3 | CCC | 31.2 | 1
4 | DDD | 30.4 | 2
這是我一直試圖做後尋找解決方案
SELECT TOP 10 * FROM Groups g
JOIN People p1 ON p1.GroupID = g.ID
JOIN People p2 ON p2.GroupID = g.ID
WHERE CONVERT(DECIMAL(8,2),ISNULL(p1.Age,0)) > (CONVERT(DECIMAL(8,2),ISNULL(p2.Age,0)) * 10)
在此先感謝!
年齡真的是你的數據庫中的varchar?所以首先想到的是改變它! –
不幸的是,我不能改變列類型.. – Asaf