--這其實蠻簡單,用Nchar就好了,注意小數點的UNICODE要特別處理
Declare @p nvarchar(200)
Declare @idx int
Declare @ret varchar(200)
set @p=N'1234567890'
SET @ret=''
Set @idx=1
WHILE SUBSTRING(@p,@idx,1)<>''
BEGIN
SET @ret=@ret+NCHAR(UNICODE(SUBSTRING(@p,@idx,1))-65248)
SET @idx=@Idx+1
END
SELECT @ret
Declare @p nvarchar(200)
Declare @idx int
Declare @ret varchar(200)
set @p=N'1234567890'
SET @ret=''
Set @idx=1
WHILE SUBSTRING(@p,@idx,1)<>''
BEGIN
SET @ret=@ret+NCHAR(UNICODE(SUBSTRING(@p,@idx,1))-65248)
SET @idx=@Idx+1
END
SELECT @ret
Declare @p nvarchar(200)
Declare @idx int
Declare @ret varchar(200)
set @p=N'1234567。890'
SET @ret=''
Set @idx=1
WHILE SUBSTRING(@p,@idx,1)<>''
BEGIN
SET @ret=@ret+NCHAR(UNICODE(SUBSTRING(@p,@idx,1))-CASE WHEN SUBSTRING(@p,@idx,1)='。' THEN 12244 ELSE 65248 END )
SET @idx=@Idx+1
END
SELECT @ret