【问题标题】:referencing a CTE in INFORMATION_SCHEMA在 INFORMATION_SCHEMA 中引用 CTE
【发布时间】:2013-12-17 18:57:25
【问题描述】:

SQL SERVER 2008 的 INFORMATION_SCHEMA 中是否存在 CTE?

我正在尝试使用 CTE 编写查询,我需要从 INFORMATION_SCHEMA 中引用 CTE,如下所示:

SELECT R.RowNum, c.COLUMN_NAME
FROM
(
    select ROW_NUMBER() over (partition by c.firstName, c.lastName, c.userEmail,       c.assessmentTitle order by c.officeTitle asc) as RowNum
    from class as c
) as R
inner join INFORMATION_SCHEMA.[COLUMNS] as c on
c.TABLE_NAME = 'myCTE' and c.COLUMN_NAME not in('LastName', 'firstName',     'userEmail', 'officeTitle')

但我没有得到任何结果。

我认为这是因为我无法从 INFORMATION_SCHEMA 引用 CTE。

有没有办法让它工作?

谢谢

【问题讨论】:

    标签: sql sql-server tsql common-table-expression


    【解决方案1】:

    信息架构中不存在 cte,它仅在运行时“存在”,就像表变量一样。

    解决方案是引用 cte 引用的表,而不是 cte 本身,如果是多个表,则使用 cte 创建视图。

    【讨论】:

    • 我的 CTE 是 2 个表的 JOIN,我可以使用 INFORMATION_SCHEMA 进行 JOIN 吗?谢谢
    • 您可以使用这两个表创建一个视图,然后通过信息架构访问它。
    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    相关资源
    最近更新 更多