SQL用空格替换重复条目

时间:2013-07-16 15:01:32

标签: sql sybase sqlanywhere sybase-asa

我有一个像这样的SQL表:

SQl table

我希望输出如下:

Output

基本上:

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

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

并尝试运行以下内容:

;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"

任何人都可以了解我的查询在哪里有语法错误/访问冲突或有更好的方法来提取数据?

1 个答案:

答案 0 :(得分:1)

我不完全确定这是否有效,但可能会尝试更换

END AS col6

END AS DBA.s12.col6