我需要编写查询的帮助-我需要创建一个函数,如果我输入代码编号,它将返回特定年份的PACEESRD信息。我有一个2018年表和一个2019年表,具有相同的列名。 这是一张桌子...
+--------+---------------+----------+-----+-----+--------+
| Code | Description | PACEESRD | V22 | V23 | Rx |
+--------+---------------+----------+-----+-----+--------+
| A0103 | pneumonia | 113 | 113 | 113 | Null |
| A0104 | sepsis | 40 | 40 | 40 | Null |
| A0105 | plague | 40 | 40 | 40 | Yes |
| A021 | arthritis | 38 | 38 | 38 | No |
| A207 | colitis | 41 | 41 | 41 | Null |
+--------+---------------+----------+-----+-----+--------+
答案 0 :(得分:0)
这是一个用户定义的函数,带有两个参数:Year和Code。然后该函数从与Year参数对应的表中返回PACEESRD值。
CREATE FUNCTION GetPACEESRD
(
@Year int,
@Code nvarchar(50)
)
RETURNS int
AS
BEGIN
DECLARE @ResultVar int;
IF (@Year = 2018)
SELECT @ResultVar = PACEESRD FROM Table2018 WHERE Code = @Code;
ELSE
IF (@Year = 2019)
SELECT @ResultVar = PACEESRD FROM Table2019 WHERE Code = @Code;
RETURN @ResultVar;
END
您可以像这样测试功能:
select dbo.GetPACEESRD(2018, 'A0103');
请修改数据类型,以使其与表的数据类型匹配。 该函数假定代码值在每个表中都是唯一的。如果它们不是唯一的,则该功能将失败,必须对其进行修改。