我正在努力将两个表达式合并为一个,这样我就可以删除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
答案 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))