比如有个数为10
我想得到如下结果
10-1
10-2
10-3
10-4
10-5
10-6
10-7
10-8
10-9
10-10前面的10为总数,后面为序列数,请问这个语句怎么写

解决方案 »

  1.   

    declare @i int
    set @i=10select ltrim(@i)+'-'+ltrim(rn) from
    (select rn=row_number()over(order by getdate()) from sysobjects)t where rn<=10
      

  2.   


    declare @i varchar(2) ,@s int
    set @i =10
    set @s = 0
    while(@s<11)
    begin
    print @i+'-'+cast(@s as varchar)
    set @s = @s+1
    end10-0
    10-1
    10-2
    10-3
    10-4
    10-5
    10-6
    10-7
    10-8
    10-9
    10-10
      

  3.   


    select '10'+'-'+ltrim(number) 
    from master.dbo.spt_values 
    where number between 1 and 10 and type='p'
    ---------------
    10-1
    10-2
    10-3
    10-4
    10-5
    10-6
    10-7
    10-8
    10-9
    10-10(10 行受影响)
      

  4.   

    declare @n int
    set @n=10
    select *from(
    select distinct RTRIM(@n)+'-'+RTRIM(number) as k 
    from master..spt_values
    where number between 1 and @n ) p
    order by LEN(k),right(k,1)k
    -------------------------
    10-1
    10-2
    10-3
    10-4
    10-5
    10-6
    10-7
    10-8
    10-9
    10-10
      

  5.   

    请问from sysobjects这句是什么意思
      

  6.   

    /*
    Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)   Jul  9 2008 14:43:34   Copyright (c) 
    1988-2008 Microsoft Corporation  Enterprise Evaluation Edition on Windows NT 5.1 <X86> 
    (Build 2600: Service Pack 3) 
     愿和大家共同进步
    如有雷同、实属巧合
    ●●●●●2009-09-03 14:39:36.077●●●●●
     ★★★★★soft_wsx★★★★★
    */
    create table #a(name varchar(10))
    declare @i int
    set @i=1
    while @i<=10 
      begin
        insert into #a(name) select '★10->'+CAST(@i as varchar)+'★'
        set @i=@i+1
      end
      --  select * from #a 
    /*
    name
    ★10->1★
    ★10->2★
    ★10->3★
    ★10->4★
    ★10->5★
    ★10->6★
    ★10->7★
    ★10->8★
    ★10->9★
    ★10->10★
    */
      
      

  7.   

    declare @i int
    set @i=10select ltrim(@i)+'-'+ltrim(rn) from
    (select rn=row_number()over(order by getdate()) from sysobjects)t where rn<=10
    这位仁兄的写法,只能对235以下的数可以,再大一点的,只要再找一个行数大一点的视图了吧,还有没有更好的方法
      

  8.   

    declare @a varchar,declare @b intset @a=10
    set @b=0
    while(@b<11)
    begin
    print @a+'_'+convert(varchar,@b)
    set @b=@b+1end