sql - 如何使用在 INSERT 语句中返回表的函数?
问题描述
我有一个返回 5 列(地址)作为表格的函数。我需要使用结果插入另一个表:
INSERT INTO mytable
(col1, address1, address2, address3, address4, address5)
SELECT
Id, HouseNo, Street, PostCode, City, Country
FROM @someTableType
JOIN dbo.GetAddress(@customerId);
该Id
列来自@someTableType
。其余列由函数返回。
但上述不起作用。
正确的方法是什么?
解决方案
将您的查询更改为此
INSERT INTO mytable
(col1, address1, address2, address3, address4, address5)
SELECT
someTableType.Id, adress.HouseNo, adress.Street, adress.PostCode, adress.City,
adress.Country
FROM @someTableType
Cross Apply dbo.GetAddress(@customerId) as adress;
但是你有改变函数,因为它总是返回相同的结果,因为@customerId 总是有一个值
推荐阅读
- docker - Kubectl 创建错误“找不到预期”
- openshift - 应用新的yaml时如何传递参数文件
- android - 未收到 mesibo android 推送通知
- azure - 按键名值查询/过滤 CosmosDB Core SQL
- c++ - 从函数返回 std::span
- kubernetes-helm - 如何将“范围”与存储在我的 Helm 图表的 configMap 中的数组一起使用
- c# - 在c#中以特定数字开头的分隔整数
- android - 使用 file.mkdir() 创建目录失败
- javascript - Javascript 动态元素创建导致 HTML 中的阴影内容
- mongodb - Mongodb集合设计