对一个字段取出10个汉字 或着是20个英文字母或数字即1汉字=两个英文字母

解决方案 »

  1.   

    declare @t table(a varchar(30))
    insert into @t select '哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈'
    insert into @t select 'aaaaaaaaaaaaaaaaaaaa'
    insert into @t select '11111111111111111111'
    insert into @t select '111111111111111111111111111'select * from @t where datalength(a)=20
      

  2.   

    left(字段,20)---这是取出20个字符declare @t table(a varchar(30))
    insert into @t select '哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈'
    insert into @t select 'aaaaaaaaaaaaaaaaaaaa'
    insert into @t select '11111111111111111111'
    insert into @t select '111111111111111111111111111'select * from @t where datalength(a)=20---这只能取文该字段是20的数据,我是要截取10个汉字 或着是20个英文字母或数字
      

  3.   

    declare @t table(a varchar(30))
    insert into @t select '哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈'
    insert into @t select 'aaaaaaaaaaaaaaaaaaaa'
    insert into @t select '11111111111111111111'
    insert into @t select '111111111111111111111111111'select left(convert(binary(16),a),20) from @t
      

  4.   


    declare @t table(a varchar(30))
    insert into @t select '哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈'
    insert into @t select 'aaaaaaaaaaaaaaaaaaaa'
    insert into @t select '11111111111111111111'
    insert into @t select '111111111111111111111111111'select left(convert(binary(20),a),20)
      

  5.   

    declare @t table(a varchar(30))
    insert into @t select '哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈'
    insert into @t select '哈哈哈哈哈哈'
    insert into @t select 'aaaaaaaaaaaaaaaaaaaa'
    insert into @t select '11111111111111111111'
    insert into @t select '111111111111111111111111111'select left(convert(binary(20),a),20) from @t
      

  6.   

    对于Unicode来说,一个英文字符一个字节;一个中文字符两个字节;其他国家的字符,好像有一个字符6个字节的。select convert(varchar(20),a)  from @t  难道楼主的意思是:对于 哈哈哈11221aaaaa 这样的字符串也选出单一的类型么??
    那我觉得就只能用Unicode判断了。并且要注意全角和半角