删除尾随字符以获取数值

时间:2013-09-27 11:20:06

标签: string tsql sql-server-2012 isnull

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

我遇到的问题是可能还有null或空字符串值,我找不到合并下面两个表达式的方法。

示例:SQLfiddle

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

2 个答案:

答案 0 :(得分:2)

DECLARE @createNumber varchar(128)
SET @createNumber = ''
select reverse(stuff(reverse(@createNumber), 1,2, ''))

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

答案 1 :(得分:0)

处理mm /''/ null;

的一种方法
select cast(isnull(replace('0' + @createNumber, 'mm', ''), 0) as decimal(6,3))