表值函数查询不能保存为视图

Posted

技术标签:

【中文标题】表值函数查询不能保存为视图【英文标题】:Query with Table Value Function cannot be saved as view 【发布时间】:2014-10-14 20:57:25 【问题描述】:

我正在尝试创建一个使用表值函数的视图来提供一堆每日表的汇总,但是当我尝试保存视图时,我总是收到错误消息。以下是我尝试过的几种变体以及每种变体产生的错误。所有这些都是可以运行并返回预期结果的有效查询。

调用我们的数据集mydataset,表名的格式为user_yyyyMMdd

SELECT 
 * 
FROM 
(TABLE_QUERY(mydataset,
              'table_id CONTAINS "user_"'))

---------------------
Failed to create view. Table name cannot be resolved: dataset name is missing.


---------------------
SELECT 
 *
FROM 
(TABLE_DATE_RANGE(mydataset.user_, 
                TIMESTAMP('2014-10-01'), 
                TIMESTAMP('2014-10-14')))
 ----------------------
 Failed to create view. Not Found: Table myproject:mydataset.user_

对于日期范围查询,该范围内的每一天都有一个表格,包括在内。另一个问题指出了 TVF 中已解决查询的错误,而这可能解释了为什么我的第一个示例不起作用,第二个(据我所知)在 TBF 中没有查询,它只是使用 TBF。创建使用 TBF 的视图是否存在错误?我的查询有问题吗?它适用是否有可用的解决方法?

【问题讨论】:

BigQuery Wildcard using TABLE_DATE_RANGE()的可能重复 是的,我要作为副本关闭。 【参考方案1】:

看看这个 Use of TABLE_DATE_RANGE function in Views

以及问题跟踪器中的打开请求@

【讨论】:

谢谢你几乎回答了我的问题。

以上是关于表值函数查询不能保存为视图的主要内容,如果未能解决你的问题,请参考以下文章

子查询 X 临时表 X 动态 sql X 表值函数

SQL Server中CLR表值函数(table-valued function)不能使用WITH(NOLOCK)

sql2005中 表值函数是啥

SQL表值函数中可以使用IF 吗?

T-SQL编程 —— 用户自定义函数(内嵌表值函数)

为使用表值函数的选择查询更正参数类型