Как вернуть пустые ячейки для повторяющихся значений и оставить только разные ячейки? - PullRequest
2 голосов
/ 30 апреля 2010

У меня есть запрос, который выбирает некоторые поля для отображения из таблицы

SELECT Field1, Field2, Field3, Field4 FROM table1

Я хочу вместо возвращения:

альтернативный текст http://img186.imageshack.us/img186/3455/87921605.png

Для возврата:

альтернативный текст http://img227.imageshack.us/img227/3921/85722509.png

Как я могу изменить свой оператор SQL, чтобы получить вторую цифру? Или, по крайней мере, как изменить свойства gridview .Net для этого (если это возможно)?

1 Ответ

3 голосов
/ 30 апреля 2010

Это можно сделать с помощью общего табличного выражения (WITH), самосоединения и функций ROW_NUMBER и NULLIF.

WITH t AS (SELECT *, ROW_NUMBER() OVER (ORDER BY Field1) rownum FROM table1)
SELECT NULLIF(curr.Field1, prev.Field1) Field1,
       NULLIF(curr.Field2, prev.Field2) Field2,
       NULLIF(curr.Field3, prev.Field3) Field3
FROM t curr
LEFT OUTER JOIN t prev ON prev.rownum = curr.rownum - 1
...