我有類似字母數字的值。 XYZ1,XYZ2 ...... XYZ11,XYZ12等,現在我只想選擇最大數值,即12這裏。 我試過了 -max()在sql server中的問題
select max(REPLACE(ID,'XYZ','')) from myTable;
但是這是返回9.爲什麼?
我有類似字母數字的值。 XYZ1,XYZ2 ...... XYZ11,XYZ12等,現在我只想選擇最大數值,即12這裏。 我試過了 -max()在sql server中的問題
select max(REPLACE(ID,'XYZ','')) from myTable;
但是這是返回9.爲什麼?
嘗試轉換之前max
select max(cast(REPLACE(ID,'XYZ','') as int)) from myTable;
它仍然在處理你的價值作爲一個字符串而不是數到INT。試試:
select max(CAST(REPLACE(ID,'XYZ','') AS INT) from myTable;
因爲你還在比較字符串。它們只包含數字的事實並不意味着它們不是字符串。你需要將它們轉換:
SELECT MAX(CAST(REPLACE(id, 'XYZ', '') AS INT)) FROM My_Table
另一種方法是
select max(REPLACE(ID,'XYZ','')*1) from myTable
你還指望' 'XYZ9'<「XYZ12''? – Gabe
這是我的不好,我應該注意到這是一個字符串 – Wondering