--這其實蠻簡單,用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
 

解决方案 »

  1.   

    小數點的全角與半角的UNICODE值可用這種方式算出來SELECT UNICODE('。')-UNICODE('.')
      

  2.   

    Kao...暈到……再倒一次~~~
     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