筛选使用子查询的视图

电子杂志

我正在尝试创建视图VW_Checks。我正在使用STUFF合并“平台”和“系统名称”列中的记录,以避免冗长的冗余数据列表。

风景:

CREATE VIEW [dbo].[VW_Checks] WITH SCHEMABINDING AS
SELECT  DISTINCT C.CheckID AS CheckID, C.CheckTitle as CheckTitle, 
STUFF((SELECT ', ' + PLATFORMNAME
        FROM dbo.CHECK_PLATFORM CPP
        WHERE CPP.CHECKID = C.CHECKID
        for xml path('')),1,1,'') AS Platformname,
STUFF((SELECT ', ' + SYSTEMNAME
        FROM dbo.CHECK_SYSTEM CSS
        WHERE CSS.CHECKID = C.CHECKID
        for xml path('')),1,1,'') AS Systemname
FROM dbo.[CHECK] C INNER JOIN               
            dbo.CHECK_CATEGORY CC ON C.CHECKID = CC.CHECKID
            INNER JOIN dbo.CATEGORY CAT ON CC.CATEGORYID = CAT.CATEGORYID
            INNER JOIN dbo.CHECK_SYSTEME CS ON CS.CHECKID = C.CHECKID
            INNER JOIN dbo.CHECK_PLATFORM CP ON CP.CHECKID = C.CHECKID

该视图就可以了(意味着它可以准确显示我想要显示的内容),但是当我尝试过滤视图时,它不起作用。

我的问题的例子:

SELECT *
FROM VW_Checks VW_C
WHERE CONTAINS(VW_P.Platformname,'iOS')

上面的SELECT语句中的WHERE子句根本不起作用,就好像它根本不在那儿一样。由于VW_P.Platformname是组合列(使用子查询),因此无法在视图上创建唯一索引。

当我尝试创建唯一索引时出现错误消息: Error: 10127, Severity: 16, Cannot create unique index I_VW_Checks on view VW_Checks because it contains one or more subqueries. Consider changing the view to use only joins instead of subqueries. Alternatively, consider not indexing this view.

如何更改视图/为其添加索引,以便可以正确过滤而不丢失合并记录?

戈登·利诺夫(Gordon Linoff)

CONTAINS()是与全文索引一起使用的语句。我想您可以实现该视图,并且要创建一个视图会遇到很多麻烦。相反,您可以使用like

WHERE ', ' + (VW_P.Platformname + ', ' like '%, ' + 'iOS' + ', %'

我确实同意Gareth的观点,认为可能还有其他更有效的方式来完成您想要的事情。但是,鉴于此观点,LIKE比更具意义CONTAINS()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL如何使用子查询创建视图?

来自分类Dev

通过子查询进行SQL筛选

来自分类Dev

使用sql union子查询的组合来处理AND / OR条件的组合以进行客户筛选

来自分类Dev

视图/子查询(MySQL)中未使用的列

来自分类Dev

视图/子查询(MySQL)中未使用的列

来自分类Dev

创建视图时在子查询中使用合并

来自分类Dev

筛选视图

来自分类Dev

筛选视图

来自分类Dev

django视图限制子查询

来自分类Dev

django视图限制子查询

来自分类Dev

使用javascript或jquery进行筛选查询

来自分类Dev

在查询中使用子查询

来自分类Dev

在聚合函数中创建视图子查询

来自分类Dev

除了视图之外的子查询的替代方案

来自分类Dev

创建视图时重用子查询的结果

来自分类Dev

带有子查询的 MariaDB 视图

来自分类Dev

使用子查询

来自分类Dev

INFORMIX使用子查询

来自分类Dev

使用子查询加入

来自分类Dev

使用CTE筛选多个列的SQL递归查询

来自分类Dev

在子视图上使用drawRect?

来自分类Dev

Grails:筛选gorm查询

来自分类Dev

视图不允许在FROM子句中使用子查询,如何在没有子查询的情况下重写我的SQL?

来自分类Dev

使用子查询对Linq进行SQL查询

来自分类Dev

在子查询中使用查询中的列

来自分类Dev

在linq查询中使用子查询

来自分类Dev

使用大型子查询优化 Django 查询

来自分类Dev

使用子查询的Sql查询语言

来自分类Dev

什么是可与Snowflake中的LATERAL一起使用的内联视图(不是子查询,不是表函数)?