select left(col , N) + REPLICATE('.' , len(col) - N)

解决方案 »

  1.   

    create table tb(col varchar(10))
    insert into tb values('abcdefg')
    insert into tb values('1234567')
    go
    declare @N as int
    set @N = 2--如果是后面的所有字符每个都用'.'表示
    select col = left(col , @N) + REPLICATE('.' , len(col) - @N) from tb
    /*
    col                 
    --------------------
    ab.....
    12.....
    */--如果是后面的所有字符只用'...'表示
    select col = left(col , @N) + '...' from tb
    /*
    col           
    ------------- 
    ab...
    12...
    */drop table tb
      

  2.   

    declare @s varchar(50),@left int
    set @s='abcdef'
    set @left=3
    select left(@s,@left)+replicate('.',len(@s)-@left)abc...
      

  3.   


    --取前10位,后面用.代替
    declare @s varchar(50),@n int
    set @s='aaaaaaaaaassssss'
    set @n=10
    select  @s=case when len(@s)<=10 then @s else left(@s,10)+'...' end
      

  4.   

        create table a (col varchar(20))
        instert into a values  ('ABCDEFG')
        GO
        declare @n
        set @n=2
        select col=left(col,@n)+replace('.'+len(col)-@n) from a 
        go