max()在sql server中的问题
我有类似字母数字的值。 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
以上是 max()在sql server中的问题 的全部内容, 来源链接: utcz.com/qa/257127.html