From 373ec8131917c1916d1574f666cf5394cf835b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=96=E8=B4=A2?= <10033750+wang-shicaishicai@user.noreply.gitee.com> Date: Mon, 10 Oct 2022 04:13:39 +0000 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E5=BB=BA=202022-10-6=E7=AC=AC?= =?UTF-8?q?=E5=8D=81=E6=AC=A1=E4=BD=9C=E4=B8=9A+=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/.keep" diff --git "a/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/.keep" "b/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 5dc043a0db85612bcbe44e5356fdc42885f87296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=96=E8=B4=A2?= <10033750+wang-shicaishicai@user.noreply.gitee.com> Date: Mon, 10 Oct 2022 04:13:59 +0000 Subject: [PATCH 2/3] =?UTF-8?q?add=2020=E7=8E=8B=E4=B8=96=E8=B4=A2/2022-10?= =?UTF-8?q?-6=E7=AC=AC=E5=8D=81=E6=AC=A1=E4=BD=9C=E4=B8=9A+=E7=AC=94?= =?UTF-8?q?=E8=AE=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王世财 <10033750+wang-shicaishicai@user.noreply.gitee.com> --- ...1\346\254\241\344\275\234\344\270\232.sql" | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 "20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232.sql" diff --git "a/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232.sql" "b/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232.sql" new file mode 100644 index 0000000..3efba62 --- /dev/null +++ "b/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232.sql" @@ -0,0 +1,95 @@ +--(1)编写一个函数求该银行的金额总和 +create function getMoney() +returns money +as +begin + declare @money money + set @money = (select sum(CardMoney) from BankCard) + return @money +end +select dbo.getMoney() 总金额 + +--(2)传入账户编号,返回账户真实姓名 + +create function getName(@cardNo varchar(20)) +returns varchar(5) +as +begin + declare @name varchar(5) + set @name = (select a.RealName from AccountInfo a inner join BankCard b on a.AccountId = b.AccountId where b.CardNo=@cardNo) + return @name +end +select dbo.getName('6225547854125656') 姓名 + +--(3)传递开始时间和结束时间,返回交易记录(存钱取钱),交易记录中包含 真实姓名,卡号,存钱金额,取钱金额,交易时间。 +create function getCharge(@beginTime smalldatetime ,@endTime smalldatetime) +returns @Charge table(name varchar(10),cardNo varchar(20),saveMoney money,outMoney money ,getTime smalldatetime) +as +begin + insert into @Charge + select a.RealName,b.CardNo,c.MoneyInBank,c.MoneyOutBank,c.ExchangeTime from AccountInfo a inner join BankCard b on a.AccountId = b.AccountId + inner join CardExchange c on c.CardNo = b.CardNo where c.ExchangeTime between cast(@beginTime as smalldatetime) and cast(@endTime as smalldatetime) + return +end +select * from getCharge('2022-09-19 ','2022-10-29') + +--(4)查询银行卡信息,将银行卡状态1,2,3,4分别转换为汉字“正常,挂失,冻结,注销”,根据银行卡余额显示银行卡等级 30万以下为“普通用户”, +--30万及以上为"VIP用户",分别显示卡号,身份证,姓名,余额,用户等级,银行卡状态。 +create function func_getMessage(@state int,@money money) +returns @message table( + CardNo varchar(50), + CardState int, + state varchar(50), + CardMoney money, + lv varchar(50) + +) +as +begin + declare @sta varchar(50) + insert into @message + select + CardNo, + CardState, + case + when CardState = 1 then '正常' + when CardState = 2 then '挂失' + when CardState = 3 then '冻结' + else '注销' + end , + CardMoney , + case + when CardMoney < 300000 then '普通用户' + else 'VIP用户' + end + from BankCard + return +end +go +select * from func_getMessage(1,30) + +--(5)编写函数,根据出生日期求年龄,年龄求实岁,例如: +create function getAge(@Time smalldatetime) +returns int +as +begin + declare @year int = year(getdate()) + declare @month int = month(getdate()) + declare @day int = day(getdate()) + declare @age int = @year - year(@Time) + if(@month <= month(@Time)) + begin + if(@month = month(@Time)) + begin + if(@day < day(@Time)) + set @age = @year - year(@Time)-1 + end + set @age = @year - year(@Time)-1 + end + else + set @age = @year - year(@Time) + return @age +end +drop function getAge +select dbo.getAge('2003-11-08') + -- Gitee From e45cd3f256476f79aa62784b7374ecddc0247acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=96=E8=B4=A2?= <10033750+wang-shicaishicai@user.noreply.gitee.com> Date: Mon, 10 Oct 2022 04:14:28 +0000 Subject: [PATCH 3/3] =?UTF-8?q?add=2020=E7=8E=8B=E4=B8=96=E8=B4=A2/2022-10?= =?UTF-8?q?-6=E7=AC=AC=E5=8D=81=E6=AC=A1=E4=BD=9C=E4=B8=9A+=E7=AC=94?= =?UTF-8?q?=E8=AE=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王世财 <10033750+wang-shicaishicai@user.noreply.gitee.com> --- ...01\346\254\241\347\254\224\350\256\260.md" | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 "20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\347\254\224\350\256\260.md" diff --git "a/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\347\254\224\350\256\260.md" "b/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\347\254\224\350\256\260.md" new file mode 100644 index 0000000..5f7ce30 --- /dev/null +++ "b/20\347\216\213\344\270\226\350\264\242/2022-10-6\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232+\347\254\224\350\256\260/\347\254\254\345\215\201\346\254\241\347\254\224\350\256\260.md" @@ -0,0 +1,37 @@ +sql server 自定义函数分为两种类型:标量函数(Scalar Function)多声明表值函数(Multi-Statement Function) + +标量函数:标量函数是对单一值操作,返回单一值。 + +CREATE FUNCTION function_name(@parameter_name parameter_data_type) --(@参数名 参数的数据类型) +RETURNS date_type --返回返回值的数据类型 + +[AS] + +BEGIN + + function_body --函数体 + + RETURN 表达式; --必须要有的 + +END +多声明表值函数:它的返回值是一个表,但它和标量型函数一样有一个用BEGIN-END 语句括起来的函数体,返回值的表中的数据是由函数体中的语句插入的。 + +create function 名称 + +([{@参数名称 参数类型[=默认值]}[,n]]) + +returns @局部变量 table(参数名 参数类型) + +[with encryption] + +[as] + +begin + +函数体 + +return 函数返回值 + +删除函数 + +drop function 函数名 \ No newline at end of file -- Gitee