我将如何修剪这个领域'633827-9062-5000-0006 4' 看起来像633827906250000006。 使用修剪函数?
该字段的长度和长度始终相同。我需要删除最后一个字符。
提前致谢。
答案 0 :(得分:3)
尝试使用replace
删除破折号,然后使用left
获取18个第一个字符。
left(replace(your_string, '-',''), 18)
在您的示例中,这将删除空格和末尾的4并保留前18个字符。
答案 1 :(得分:1)
DECLARE @value varchar(50) = '633827-9062-5000-0006 4';
SELECT REPLACE(RTRIM(LEFT(@value, LEN(@value) - 1)), '-', '')
答案 2 :(得分:0)
要删除最后2个字符(空格和' 4'),您可以使用SUBSTRING和REPLACE,如以下示例所示:
declare @s varchar(50);
declare @t varchar(50);
set @s = '633827-9062-5000-0006 4';
set @t = substring(@s, 1, 21)
print '[' + @t + ']';
set @t = substring(@s, 1, len(@s) - 2);
print '[' + @t + ']';
set @t = replace(substring(@s, 1, len(@s) - 2), '-', '');
print '[' + @t + ']';
在第一个PRINT语句中,我对长度进行了硬编码,在第二个中,我计算了最终的字符串长度。如果你想删除破折号,第三个分配也会这样做。
如果字符串长度可能少于2个字符,则STRING会抱怨传递给子字符串函数的长度参数无效。'您可以使用CASE语句来防止这种情况。
答案 3 :(得分:0)
declare @s varchar(50);
set @s = '633827-9062-5000-0006 4';
select replace(substring(@s,0,charindex(' ',@s)),'-','')