Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将查询另存为视图获取错误_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 将查询另存为视图获取错误

Sql 将查询另存为视图获取错误,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有这个查询,运行良好,没有问题 SELECT [Q].sHost , LEFT([Q].sDescription, Len([Q].sDescription) - 1) AS [sDescription] FROM ( SELECT DISTINCT [Q2].sHost , ( SELECT CONVERT(NVARCHAR(MAX), [Q1].[sDescription]) + N', ' AS [text()]

我有这个查询,运行良好,没有问题

SELECT [Q].sHost
    , LEFT([Q].sDescription, Len([Q].sDescription) - 1) AS [sDescription]
FROM (

    SELECT DISTINCT [Q2].sHost
        , (
            SELECT CONVERT(NVARCHAR(MAX), [Q1].[sDescription]) + N', ' AS [text()]
            FROM (
                SELECT (
                        CASE 
                            WHEN (CHARINDEX('\', [sInstance]) = 0)
                                THEN [sInstance]
                            ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
                            END
                        ) AS sHost
                    , [sDescription]
                FROM [db_group].[dbo].[instanceCommentsList]
                ) AS [Q1]
            WHERE ([Q1].sHost = [Q2].sHost)
            FOR XML PATH('')
            ) [sDescription]
    FROM (
        SELECT (
                CASE 
                    WHEN (CHARINDEX('\', [sInstance]) = 0)
                        THEN [sInstance]
                    ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
                    END
                ) AS sHost
            , [sDescription]
        FROM [db_group].[dbo].[instanceCommentsList]
        ) AS [Q2]
    ) AS [Q]
当我将此查询保存为视图时,会出现以下错误

“(”附近的WHERE子句出错

“=”附近的WHERE子句出错。无法

解析查询文本

不知道哪里出了问题

它可以以任何方式进行保存,并且可以正常工作,我可以在简单的select查询中使用它,但我在视图名称下会得到一条红线,当我将鼠标放在上面时,我会看到这条消息

对象名称无效

如果我在更复杂的查询中使用它,它根本不起作用

编辑:----------------------------------

阅读后感谢选择Distinct的评论

我修复了它,但仍然得到一个错误

“(”附近的WHERE子句出错

无法分析查询文本

以下是固定代码:

SELECT [Q].sHost
    , LEFT([Q].sDescription, Len([Q].sDescription) - 1) AS [sDescription]
FROM (

    SELECT DISTINCT [Q2].sHost
        , (
            SELECT CONVERT(VARCHAR(MAX), [Q1].[sDescription]) + ', ' AS [text()]
            FROM (
                SELECT (
                        CASE 
                            WHEN (CHARINDEX('\', [sInstance]) = 0)
                                THEN [sInstance]
                            ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
                            END
                        ) AS sHost
                    , [sDescription]
                FROM [db_group].[dbo].[instanceCommentsList]
                ) AS [Q1]
            WHERE ([Q1].sHost = [Q2].sHost)
            FOR XML PATH(''), type
       ).value('.', 'varchar(max)') as [sDescription]
    FROM (
        SELECT (
                CASE 
                    WHEN (CHARINDEX('\', [sInstance]) = 0)
                        THEN [sInstance]
                    ELSE substring([sInstance], 0, CHARINDEX('\', [sInstance]))
                    END
                ) AS sHost
            , [sDescription]
        FROM [db_group].[dbo].[instanceCommentsList]
        ) AS [Q2]
    ) AS [Q]

尝试WHERE[Q1].sHost=[Q2].sHost而不是WHERE([Q1].sHost=[Q2].sHost)。

想知道这些反斜杠是否需要转义?但在运行查询时它工作得很好!无论如何,我都会对它进行测试尝试在XML路径和[description]之间加一个逗号,比如:FOR XML路径(“”)),[SDesdescription]Mikael Eriksson解释了XML路径是如何工作的,可能是您使用它导致了问题SelectDistinct,我确实尝试过,它不起作用,我得到了一个错误,整个事情都不起作用了!