String 删除尾随字符以获取数值

String 删除尾随字符以获取数值,string,tsql,sql-server-2012,isnull,String,Tsql,Sql Server 2012,Isnull,我正在努力将两个表达式合并为一个表达式,这样我就可以删除varchar列的尾随字符'mm',该列包含3.214mm之类的值,并将这些字符用作数值 我遇到的问题是,也可能存在null或空字符串值,我找不到一种方法来组合下面的两个表达式 例如: 处理mm/''/null的一种方法 如果createnumber短于2个字符,则返回null。有点俗气,但您知道度量值是“mm”吗?可能会考虑用“”代替“MM”。这里也有一些有趣的想法。 DECLARE @string varchar(128) SET @s

我正在努力将两个表达式合并为一个表达式,这样我就可以删除varchar列的尾随字符'mm',该列包含3.214mm之类的值,并将这些字符用作数值

我遇到的问题是,也可能存在null或空字符串值,我找不到一种方法来组合下面的两个表达式

例如:

处理mm/''/null的一种方法


如果createnumber短于2个字符,则返回null。

有点俗气,但您知道度量值是“mm”吗?可能会考虑用“”代替“MM”。这里也有一些有趣的想法。
DECLARE @string varchar(128)
SET @string = '4.123mm'
SELECT ISNULL(NULLIF(@string,''),NULL) As MyString ;

DECLARE @createNumber varchar(128)
SET @createNumber = '4.123mm'
select LEFT(@createNumber, NULLIF (LEN(@createNumber) - 2, - 1))As MyNumber
select cast(isnull(replace('0' + @createNumber, 'mm', ''), 0) as decimal(6,3))
DECLARE @createNumber varchar(128)
SET @createNumber = ''
select reverse(stuff(reverse(@createNumber), 1,2, ''))