|
end select @two=@two+1 end select @one=@one+1 end
实现方法二:
CREATE FUNCTION SelectNFromM (@N INT, @M INT) RETURNS @Temp TABLE (Value NVARCHAR(50), MaxIndex INT) AS BEGIN DECLARE @IndexTemp TABLE ([Index] INT)
DECLARE @INDEX INT
SET @INDEX = 0 WHILE (@INDEX < @M) BEGIN INSERT @IndexTemp VALUES (@INDEX) SET @INDEX = @INDEX + 1 END
IF (@N = 1) BEGIN INSERT @Temp SELECT [Index], [Index] FROM @IndexTemp END ELSE BEGIN SET @INDEX = @N - 1; INSERT @Temp SELECT a.Value + ' ' + CONVERT(NVARCHAR(50), b.[Index]), b.[Index] FROM SelectNFromM(@INDEX, @M) AS a, @IndexTemp b WHERE b.[Index] > a.MaxIndex END
RETURN END GO SELECT Value FROM SelectNFromM (7, 26)
实现方法三:
create table t (n smallint)
insert t select distinct colid-1 from syscolumns where colid<=26
select t1.n,t2.n,t3.n,t4.n,t5.n,t6.n,t7.n from t t1,t t2,t t3,t t4,t t5,t t6,t t7 where t1.n<20 and t1.n<t2.n and t2.n<21 and t2.n<t3.n and t3.n<22 and t3.n<t4.n and t4.n<23 and t4.n<t5.n and t5.n<24 and t5.n<t6.n and t6.n<25 and t6.n<t7.n |