3

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

我遇到的问题是,也可能有 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
4

2 回答 2

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

如果 createnumber 小于 2 个字符,这将返回 null。

于 2013-09-27T13:37:06.163 回答
0

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

select cast(isnull(replace('0' + @createNumber, 'mm', ''), 0) as decimal(6,3))
于 2013-09-27T11:37:44.497 回答