我有一个像这样的 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"
谁能阐明我的查询在哪里存在语法错误/访问冲突或有更好的方法来提取数据?