sql - 从表值函数中选择?
问题描述
视图是否可以从表值函数中选择列?
CREATE FUNCTION fnGetLatestOrderStatus(@OrderId int)
RETURNS TABLE
AS
RETURN
SELECT TOP (1) Status, TimestampUtc
FROM OrderStatusHistory
ORDER BY TimestampUtc DESC
GO
CREATE VIEW MyView AS
SELECT
OrderId,
CustomerId,
fnGetLatestOrderStatus(OrderId).Status AS OrderStatus,
fnGetLatestOrderStatus(OrderId).TimestampUtc AS OrderStatusTimestamp
FROM Orders
GO
SSMS 不喜欢这个错误
找不到列“fnGetLatestOrderStatus”或用户定义的函数或聚合“fnGetLatestOrderStatus”,或者名称不明确。
解决方案
这是你想做的吗?
SELECT o.OrderId, o.CustomerId, flos.*
FROM Orders o CROSS APPLY
dbo.fnGetLatestOrderStatus(o.OrderId int) flos;
您需要在FROM
子句中调用表值函数。
推荐阅读
- php - 每天从 SQL 数组中随机选择一个
- node.js - express 弃用 router.param 解决方案
- angular12 - 根据属性值在 LI 元素中设置文本
- java - 出现错误,foreach 不适用于类型“com.google.firebase.firestore.DocumentSnapshot”
- python - Python。从 file1 中选择在 file2 的行中具有匹配名称的列
- mongodb - 数据是如何使用 mongodump 和 mongorestore 加密和解密的?
- javascript - Firebase Admin Storage:调用者没有权限
- ruby-on-rails - 未初始化常量 Spree::Calculator::Shipping::Andreani NewShippingCalculator
- python - 为什么 scipy 没有任何内置方法来查找最大值?
- java - 使用 BuildConfig 插件的 java lib 无法使用 gradle 7.0.2 编译(配置
未找到)