insertdemo10.sql
来自「T-SQL示例大全」· SQL 代码 · 共 66 行
SQL
66 行
/*
文件名称: InsertDemo10.sql
目 的: 示范将用户自定义函数返回的查询结果新增至一个新的数据表
*/
USE 北风贸易
GO
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'dbo.udf_GetPerson'))
DROP FUNCTION dbo.udf_GetPerson
GO
CREATE FUNCTION dbo.udf_GetPerson
(
@youngage tinyint,
@oldage tinyint,
@department nvarchar(10),
@currentdate datetime
)
RETURNS @ResultTable TABLE (姓名 nvarchar(10) NULL,
性别 nvarchar(1) NULL,
婚姻 nvarchar(2) NULL,
年龄 tinyint NULL,
电话号码 nvarchar(11) NULL,
部门 nvarchar(10) NULL)
AS
BEGIN
IF @youngage < 18
INSERT @ResultTable VALUES ('未成年','XX','不知',18,'00000000','不收未成年')
ELSE
--将数据新增至 table 变量 @ResultTable
INSERT @ResultTable
SELECT 姓名,
性别 = CASE 员工性别
WHEN 0 THEN '女'
WHEN 1 THEN '男'
END,
婚姻 = CASE 婚姻状况
WHEN 0 THEN '未婚'
WHEN 1 THEN '已婚'
END,
年龄 = DATEDIFF(yy,出生日期,@currentdate),
电话号码,
部门
FROM 飞狐工作室
WHERE DATEDIFF(yy,出生日期,@currentdate) BETWEEN @youngage AND @oldage
AND 部门 = @department
RETURN
END
GO
DECLARE @mydate DATETIME
SET @mydate = GETDATE()
-- 将用户自定义函数所返回的数据表存入一个新的数据表
SELECT * INTO 生产制造部年龄介于25至30的员工
FROM dbo.udf_GetPerson(25,30,'生产制造部',@mydate)
ORDER BY 1
-- 查看新数据表的数据内容
SELECT * FROM 生产制造部年龄介于25至30的员工
DROP TABLE 生产制造部年龄介于25至30的员工
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?