SQL写的乘法口诀

时间:2022-10-23 03:32:24 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

declare @i int,@j int,@result varchar(100)

set @i=1

while @i<=9

begin

select @j=1,@result=''

while @j<=@i

begin

set @result=@result+' '+ltrim(@j)+'×'+ltrim(@i) +'='+ltrim(@i*@j)++space(3)

set @j=@j+1

end

set @i=@i+1

print @result

end

declare @i int,@j int,@result varchar(100)

set @i=1

while @i<=9

begin

select @j=1,@result=''

while @j<=@i

begin

set @result=@result+' '+cast(@j as char(1))+'×'+cast(@i as char(1)) +'='+cast(@i*@j as char(2))++space(2)

set @j=@j+1

end

set @i=@i+1

print @result

end

with t as(select number from master..spt_values a

where type = 'P' and number between 1 and 9 )

select [1],[2],[3],[4],[5],[6],[7],[8],[9] from (

select t1.number w1,t2.number w2,

case when t1.number>t2.number then '' else

convert(char(1),t1.number)+'X'+convert(char(1),t2.number)+'='+convert(char(2),t1.number*t2.number)

end w3 from t t1,t t2)a

pivot (max(w3) for w1 in ([1],[2],[3],[4],[5],[6],[7],[8],[9]))c

SELECT

'乖'= a.n1

,'1' = CASE WHEN a.n1 >= 1 THEN CONVERT(CHAR(1),1)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'2' = CASE WHEN a.n1 >= 2 THEN CONVERT(CHAR(1),2)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'3' = CASE WHEN a.n1 >= 3 THEN CONVERT(CHAR(1),3)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'4' = CASE WHEN a.n1 >= 4 THEN CONVERT(CHAR(1),4)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'5' = CASE WHEN a.n1 >= 5 THEN CONVERT(CHAR(1),5)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'6' = CASE WHEN a.n1 >= 6 THEN CONVERT(CHAR(1),6)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'7' = CASE WHEN a.n1 >= 7 THEN CONVERT(CHAR(1),7)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'8' = CASE WHEN a.n1 >= 8 THEN CONVERT(CHAR(1),8)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

,'9' = CASE WHEN a.n1 >= 9 THEN CONVERT(CHAR(1),9)+'×'+CONVERT(CHAR(1),a.n1)+ '='+CONVERT(CHAR(2),a.n1*a.n1) ELSE '' END

FROM (

SELECT n1 = number

FROM master..spt_values

WHERE type ='P' AND number BETWEEN 1 AND 9

) a

GROUP BY a.n1

with c1 as(

select number from master..spt_values where type='p' and number>0 and number<10

)

,c2 as(

select a.number,convert(varchar,b.number)+'乖'+convert(varchar,a.number)+'得'+convert(varchar,a.number*b.number)as multi

from c1 a inner join c1 b on b.number<=a.number

)

select distinct multi from (

select number,stuff((select ' '+multi from c2 where number=a.number for xml path('')),1,1,'') as multi from c2 a

)T

本文来源:https://www.wddqw.com/doc/a7543aa2b0717fd5360cdcab.html