declare @str Nvarchar(100)
@str1=N'abcd测试'
@str2=right(@str1,1)

解决方案 »

  1.   

    set @str1="abcd测试"
    set @str2=right(@str1,1)
    怎么会死机呢?不会吧!
      

  2.   

    更正
    declare @str1 Nvarchar(100),@str2 Nvarchar(100)
    select @str1=N'abcd测试'
    select @str2=right(@str1,1)
      

  3.   

    嘻嘻!这还有一贴!declare @str1 nvarchar(100),@str2 nvarchar(100)
    set @str1=N'abcd测试'
    set @str2=right(@str1,1)
    selct @str1
      

  4.   

    谢谢各位,但是我在SQL Server Query Analyzer中执行还是老问题,以下是我的例子,请指教:
    declare @temp varchar(225)
    declare @temp1 Nvarchar(100)
    SELECT @temp1=N'fslkfsl飞'
    select @temp=right(@temp1,1)
    print "@temp="+@temp
      

  5.   

    declare @temp varchar(225)
    declare @temp1 Nvarchar(100)
    SELECT @temp1=N'fslkfsl飞'
    select @temp=right(@temp1,1)
    print "@temp="+@temp
      

  6.   

    谢谢各位,刚才的问题解决了。但是我使用datalength函数取得的结果是字符串的字节数,不是Unicode编码的字符串长度。
    请问如何取得Nvarchar类型的字符串真实长度呢?
    谢谢!
      

  7.   

    select datalength(rtrim(cast(N'a' as varchar(1000)))
      

  8.   

    select datalength(rtrim(cast(N'a' as varchar(1000))))
      

  9.   

    谢谢,但是用这种方法得到的是字节数,我想得到的是Unicode字符的数目,比如◎str1='测s试',如果用你的方法得到的长度是5,我想得到的值是3,请问这该如何实现?谢谢