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

回到顶部