Вместо IGNORE вы можете использовать ON DUPLICATE KEY UPDATE, которое даст вам контроль над тем, какие значения должны преобладать.
Помните, что МАКС. агрегатная функция будет работать над текстом, а также числами. Этот запрос только потребует, чтобы таблица была просканирована однажды.
SELECT Action,
MAX( CASE data WHEN 'View' THEN data ELSE '' END ) ViewCol,
MAX( CASE data WHEN 'Edit' THEN data ELSE '' END ) EditCol
FROM t
GROUP BY Action
Если Вы конкретно хотите использовать функцию ЦЕНТРА SQL Server, то это должно работать, предполагая, что Ваши два первоначальных столбца называют действием и cmd. (Не то, чтобы симпатичный для взгляда на все же.)
SELECT act AS 'Action', [View] as 'View', [Edit] as 'Edit'
FROM (
SELECT act, cmd FROM data
) AS src
PIVOT (
MAX(cmd) FOR cmd IN ([View], [Edit])
) AS pvt
Ну, для Вашего образца и любого с ограниченным количеством уникальных столбцов, это должно сделать это.
select
distinct a,
(select distinct t2.b from t t2 where t1.a=t2.a and t2.b='VIEW'),
(select distinct t2.b from t t2 where t1.a=t2.a and t2.b='EDIT')
from t t1