T SQL程式設計上課例題

2021-08-13 10:27:10 字數 2766 閱讀 5631

--1.成績表存學號,姓名,成績值。根據成績顯示優(90以上),良(80到90),中(70到80),及格(60到70),不及格(60以下)。

use student

create table scoretable(

num char(20) not null,

name char(10) not null,

score int

)insert into scoretable values('16050555201','張三',80)

insert into scoretable values('16050555205','姜子牙',92)

insert into scoretable values('16050555210','張飛',85)

insert into scoretable values('16050555219','趙雲',79)

insert into scoretable values('16050555221','韓信',65)

insert into scoretable values('16050555204','劉備',87)

insert into scoretable values('16050555205','王昭君',55)

insert into scoretable values('16050555206','羋月',100)

select * from scoretable

select (

case when score<60 then '不及格'

when score>=60 and score<70 then '及格'

when score>=70 and score<80 then '中'

when score>=80 and score<90 then '良'

when score>=90 then '優' end

) as 成績等次 from scoretable

--2.tsql程式設計實現判斷變數是字母,數字還是其他字元,並輸出其型別。

--通過if語句求乙個字元是什麼型別

declare @ch char

set @ch = '#'

if upper(@ch)>='a' and upper(@ch)<='z'

print @ch+'是字母'

else if @ch>='0' and @ch<='9'

print @ch+'是數字'

else

print @ch+'是其他字元'

--通過case語句求乙個字元是什麼型別

declare @ch2 char

set @ch2 = ''

print

case

when upper(@ch2)>='a' and upper(@ch2)<='z' then @ch2+'是字元'

when @ch2>='0' and @ch2<='9' then @ch2+'是數字'

else @ch2+'是其他字元'

end--3.tsql程式設計實現輸出所有3000以內能被17整除的數。

declare @result table (num int null)

declare @i int

set @i=1

while @i<=3000

begin

if (@i%17)=0

insert into @result values(@i)

set @i=@i+1

endselect * from @result

--4.程式設計實現函式,通過輾轉相除法解兩個正整數的最大公約數。

create function getgys

( @num1 bigint ,

@num2 bigint

) returns bigint

as

begin

declare @m bigint;

declare @i bigint;

if ( @num1 < @num2 )--確保@num1永遠是大的 @num2永遠是小的

begin

set @m = @num2;

set @num2 = @num1;

set @num1 = @m;

end;

set @i = @num1 % @num2;

while @i > 0

begin

select @num1 = @num2 ,

@num2 = @i ,

@i = @num1 % @num2;

end;

return @num2;

end;

go select dbo.getgys(18,24) as 最大公約數

--5.tsql程式設計實現乙個函式,可以將十進位制數轉換為二進位制字串。

declare @ch3 nchar(10),@n int,@a int

set @n=20

set @ch3=''

print cast(@n as varchar(5))+'的二進位制為:'

while @n<>0

begin

set @a=@n%2

set @n=@n/2

set @ch3=char(48+@a)+@ch3

end

print @ch3

2021 3 23 上課例題

string s1 newstring a string s2 newstring a system.out.println s1 s2 system.out.println s1.equals s2 a.false false b.false true c.true true d.true fal...

T SQL程式設計

if else 語句 begin end 相當予c語言中的 當語句塊中只有一句的時候 可以省略 begin end while begin 語句塊 end print 列印輸出資訊 declare num int select num 100 while num 90 begin if num 80...

T SQL程式設計

我在做sqlserver進行t sql操作時,在對時間的處理上總是有點不懂,今天我把sqlserver時間函式整理了一下,希望對大家在處理時間上有所幫助 返回乙個指定的日期是該月份的那一天的整數 declare day int set day day 2 05 2011 select day 返回乙...