如何使用变量 where 子句创建 SQL 视图



我有一个有 37 列的表格。该表是从每日 csv 文件填充的。我需要创建一个仅过滤上个月数据集的视图。过帐日期列是格式为 20131219 的字符串变量。 我有一个函数,它使用日期函数来确定当前月份,然后返回一个包含年份和前一个月的字符串。 此查询返回我需要的数据集,但我无法弄清楚如何创建允许变量和函数调用的视图。**参数"2013"不做任何事情。如果没有一个,我就无法让该功能工作,所以添加了一些东西。

declare @newstring varchar(6)
set @newstring = [dbo].[GetPrevYearMonth]('2013')
select * from dbo.SAE_EDATA_LV
where [GTR-POSTING-DATE] like @newstring+'%'

我知道我可以创建一个具有表返回类型的函数,但这对于列数来说非常乏味。

任何帮助将不胜感激。

将视图更改为内联表值函数 (iTVF)。 无论如何,iTVF实际上只是一个参数化的视图。

使用它的方式完全相同,只是您还必须指定参数。

或者,您可以为视图创建 iTVF 包装器:

CREATE FUNCTION dbo.fnSAE_EDATA_LV(@newstring varchar(6))
RETURNS TABLE As
    select * 
    from dbo.SAE_EDATA_LV
    where [GTR-POSTING-DATE] like @newstring+'%'

还应知道,只需将长列列表从 SSMS 资源管理器窗格中的表/视图/表值函数的图标/列文件夹拖放到 SQL 会话窗格中即可。

相关内容

  • 没有找到相关文章

最新更新