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
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
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 行受影响)
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
请问from sysobjects这句是什么意思
/* 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★ */
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以下的数可以,再大一点的,只要再找一个行数大一点的视图了吧,还有没有更好的方法
declare @a varchar,declare @b intset @a=10 set @b=0 while(@b<11) begin print @a+'_'+convert(varchar,@b) set @b=@b+1end
set @i=10select ltrim(@i)+'-'+ltrim(rn) from
(select rn=row_number()over(order by getdate()) from sysobjects)t where rn<=10
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
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 行受影响)
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
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★
*/
set @i=10select ltrim(@i)+'-'+ltrim(rn) from
(select rn=row_number()over(order by getdate()) from sysobjects)t where rn<=10
这位仁兄的写法,只能对235以下的数可以,再大一点的,只要再找一个行数大一点的视图了吧,还有没有更好的方法
set @b=0
while(@b<11)
begin
print @a+'_'+convert(varchar,@b)
set @b=@b+1end