1

我有一个像这样的 SQL 表:

SQL 表

我希望输出是这样的:

输出

基本上:

  • 用空格替换重复项,但
    • 如果col6值与相同 col1 值的前一行不同,则应包括所有数据字段。
  • col10 值为空白。
  • col12 被删除。

我正在努力创建一个查询。我发现了这个:CTE 答案

并尝试运行以下命令:

;WITH CTE
AS
( 
   SELECT DBA.s12.*,
     ROW_NUMBER() OVER(PARTITION BY DBA.s12.col6 ORDER BY(SELECT 1)) rownum
  FROM DBA.s12
)
SELECT
   DBA.s12.col1,
   DBA.s12.col2,
   DBA.s12.col3,
   DBA.s12.col4,
   DBA.s12.col5,
   DBA.s12.col7, 
   DBA.s12.col8,
   DBA.s12.col9,
   DBA.s12.col10,
   DBA.s12.col11,
   DBA.s12.col12,
  CASE rownum
    WHEN 1 THEN DBA.s12.col6
    ELSE ''
  END AS col6
FROM CTE
ORDER BY DBA.s12.col1;

但我得到一个错误"Could not execute statement. Syntax error or access violation"

谁能阐明我的查询在哪里存在语法错误/访问冲突或有更好的方法来提取数据?

4

1 回答 1

1

我不完全确定这是否可行,但也许尝试更换

END AS col6

END AS DBA.s12.col6
于 2013-09-12T22:30:56.043 回答