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 + -
显示快捷键?