我正在使用SSIS 2008 R2。
我想取一个unicode字符串,提取所有“unicode only”字符,这样我就留下了一个“非unicode”字符串。
在我的情况下,它应该主要是控制字符,CR,LF等等。
如果没有一英里长的更换顺序,是否有一种简单的方法可以做到这一点?
答案 0 :(得分:0)
不确定这是否是您想要的。 T-SQL中有一个函数unicode,它返回一个字符的unicode整数值。如果您通过“unicode only”表示unicode整数值大于255的字符,则可以使用此代码获取不带“unicode”字符的字符串。
declare @str nvarchar(5)
declare @str2 nvarchar(5)
set @str = 'A'+nchar(300)+'B'+nchar(400)+'C'
set @str2 = ''
;with cte as
(
select
left(@str, 1) as val,
stuff(@str, 1, 1, '') as rest
union all
select
left(rest, 1) as val,
stuff(rest, 1, 1, '') as rest
from cte
where len(rest) > 0
)
select @str2 = @str2 + val
from cte
where unicode(val) < 256
print @str
print @str2
结果
AĬBƐC
ABC