>  기사  >  데이터 베이스  >  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으로 문의하세요.