sql - 来自输入列的 SQL Server 函数中的表变量
问题描述
我想创建一个函数,该函数根据其他三列的输入返回一列。由于函数中不允许使用临时表,是否可以从三个输入列创建表变量?
CREATE FUNCTION dbo.convert_value(
@CustomerID VARCHAR(MAX),
@CustomerValue VARCHAR(MAX),
@CustomerDescription VARCHAR(MAX)
)
RETURNS FLOAT
AS BEGIN
DECLARE @CustomerTable TABLE (
UniquePatientUID VARCHAR(MAX),
ResultValue VARCHAR(MAX),
PracticeDescription VARCHAR(MAX)
);
-- How can I insert @UniquePatientUID, @ResultValue and @PracticeDescription into @CustomerTable
END
这个问题的上下文是我有一个使用临时表和许多UPDATE
和ALTER TABLE
语句的 SQL 脚本,我需要将其转换为函数。该脚本从提到的三列开始,并添加第四列,Converted_Value
,这是用数百行代码和操作临时表计算的。这里有希望吗?
解决方案
表变量插入实际上与常规插入没有什么不同。不要使用临时表。您也可以更改表,或者仅使用第四列最初声明它并允许它为 NULL。
INSERT INTO @CustomerTable (UniquePatientUID, ResultValue, PracticeDescription)
VALUES(@CustomerID, @CustomerValue, @CustomerDescription);
不要忘记返回 FLOAT。
推荐阅读
- python - 尝试将表上传到 mongoDB 时出现“缺少集合名称”
- java - Android avdmanager 打印 null 并退出
- reactjs - React Routing 在本地工作,但不适用于我的虚拟主机
- java - 使用 docx4j 的 docx 到 png 转换器
- python - 如何将这些功能的 2 个 for 循环合二为一
- sql - 需要通过限制列数据从 Presto Teradata 获取数据
- node.js - Heroku git push 错误没有与节点匹配的版本:6.4.1
- sql - 组合 2 个相同的表进行查询时,Postgres 视图变慢
- c# - 等待操作超时和sql server存储过程事务
- mongodb - 使用 $lte 和 $gte 对嵌套数组进行排序