我有一个带有nvarchar列的表.此列具有值,例如:
983
294
A343
a3546f
等等.
我想把这个值的MAX,但不是文本,而是像数字.所以在这个例子中,数字是:
983
294
343
3546
MAX值是最后一个--3546.如何在Microsoft SQL上的TSQL中执行此操作?
首先安装正则表达式函数. 本文包含您可以剪切/粘贴的代码.
然后使用RegexReplace(来自该文章),您可以从字符串中提取数字:
dbo.RegexReplace( '.*?(\d+).*', myField, '$1' )
然后将此字符串转换为数字:
CAST( dbo.RegexReplace( '.*?(\d+).*', myField, '$1' ) AS INT )
然后在一个MAX()
函数中使用这个表达式SELECT
.