首頁  >  文章  >  資料庫  >  SQL Server(1):例题

SQL Server(1):例题

WBOY
WBOY原創
2016-06-07 17:45:161253瀏覽

SQL Server(1):例题 1、编写一段程序:输出1-1000之间的质数,并保存到一个新的质数表(序号, 质数)中。 create table 质数表(序号 int identity(1,1),质数 int) declare @i int, @j int, @flag bit -- @i外循环变量, @j内循环变量, @flag表示是否质数的旗标

SQL Server(1):例题

1、编写一段程序:输出1-1000之间的质数,并保存到一个新的质数表(序号, 质数)中。
create table 质数表(序号 int identity(1,1),质数 int)
declare @i int, @j int, @flag bit    -- @i外循环变量, @j内循环变量, @flag表示是否质数的旗标
set @i=2
while @ibegin
set @flag=1
set @j=2
while @jbegin
if @i%@j=0
begin
set @flag=0
break        --  ①不是质数就可以退出内循环了
end
set @j=@j+1
end
if @flag=1
insert into 质数表(质数) values(@i)
set @i=@i+1
end        -- ②注意缩进和对齐!!!比如每个循环的begin, end。

 

2、编写一个函数:要求反置一段文本后,香港空间,单词首字母大写输出。例如输入 I am Frank。输出Knarf Ma I。
create function 反置文本(@string varchar(5000))
returns varchar(5000)       -- 参数和返回类型
as
begin
  declare @i int, @flag bit      -- @flag是大小写旗标
  declare @reverse varchar(5000), @result varchar(5000)
  set @i=1     -- 第一次循环,先实现反置,结果保存到@reverse
  set @reverse=''
  while(@i  begin
    set @reverse=SubString(@string, @i,1)+@reverse
    set @i=@i+1
  end
  set @i=1      -- 第二次循环,网站空间,再实现首字母大小写,服务器空间,结果保存到@result
  set @flag = 1
  set @result=''
  while(@i  begin
    if @flag = 1
      set @result=@result + Upper(SubString(@reverse, @i,1))
    else
      set @result=@result + Lower(SubString(@reverse, @i,1))
    if SubString(@reverse, @i,1) in (' ', '.')
      set @flag = 1
    else
      set @flag = 0
    set @i=@i+1
  end
  return(@result)
end

posted on

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn