SQL-カスタム関数
1411 ワード
関数:関数は、1つ以上のTransact-SQL文からなるサブルーチンです.ユーザー定義関数は、0つ以上の入力パラメータを受け入れ、スカラー値またはテーブルを返します.カスタム関数の分類かすたむかんすうのぶんかつ:スカラー関数スカラーかんすう:戻り値が単一の値インライン表値関数戻り値が単一の値インライン表値関数:戻り値が更新可能な表の多文表値関数戻り値が更新不可能な表戻り値
スカラー関数の定義と呼び出し:スカラー関数を作成し、指定したカリキュラム番号の平均成績を計算し、その関数を呼び出して科目の平均成績をクエリーします.
インライン表値関数の作成と呼び出し:インライン表値関数を作成し、指定した学生の選択状況(学番号、名前、カリキュラム番号、成績を含む)をクエリーし、その関数を呼び出して学生の選択状況をクエリーし、その関数を呼び出して学生の授業の成績を100に変更し、学生の成績を再クエリーして変更しましたか.
多文表値関数の作成と呼び出し:多文表値関数を作成し、指定したカリキュラム番号の学生の選択状況(学番号、名前、成績を含む)を照会し、選択した学生の成績を5点向上させ、その関数を呼び出して、あるカリキュラムの学生の選択と成績の変更状況を問い合わせる.△関数を呼び出した後の成績と比較するために、この授業の成績を調べておきます.C言語の形参と実参の違いに相当するでしょう
スカラー関数の定義と呼び出し:スカラー関数を作成し、指定したカリキュラム番号の平均成績を計算し、その関数を呼び出して科目の平均成績をクエリーします.
create function Avg_degree(@cno char(6))
returns float(1) --
as
begin
declare @var float(1)
select @var = AVG(degree)
from score
where cno = @cno
return @var
end
select dbo.Avg_degree('3-105')
インライン表値関数の作成と呼び出し:インライン表値関数を作成し、指定した学生の選択状況(学番号、名前、カリキュラム番号、成績を含む)をクエリーし、その関数を呼び出して学生の選択状況をクエリーし、その関数を呼び出して学生の授業の成績を100に変更し、学生の成績を再クエリーして変更しましたか.
create function select_course(@ssno char(5))
returns table
as
return (select *
from score
where sno = @ssno)
go
select * from select_course('101')
update select_course('101')
set degree = 80
where cno = '3-105'
多文表値関数の作成と呼び出し:多文表値関数を作成し、指定したカリキュラム番号の学生の選択状況(学番号、名前、成績を含む)を照会し、選択した学生の成績を5点向上させ、その関数を呼び出して、あるカリキュラムの学生の選択と成績の変更状況を問い合わせる.△関数を呼び出した後の成績と比較するために、この授業の成績を調べておきます.C言語の形参と実参の違いに相当するでしょう
create function select_student(@ccno char(6))
returns @st table
(
sno char(5),
sname char(10),
degree float
)
as
begin
insert @st
select student.sno, sname, degree = degree+5
from student, score
where student.sno = score.sno and cno = @ccno
return
end