Я хотел бы создать динамический запрос, который использует представление information_schema.columns для удаления дубликатов в таблице.TableName будет предоставлено действием фабрики данных позже.Есть идеи?Столбцы, используемые для создания чего-то, что должно быть уникальным, - это столбцы перед столбцом «selectedColumn» (упорядоченным по ordinal_position).
Я представляю, что запрос выглядит примерно так, чтобы дать идею.Но, как вы определенно понимаете, увидев это, я новичок в использовании information_schema, как это!
WITH cte AS (
SELECT
*
,ROW_NUMBER() OVER (
PARTITION BY
(SELECT COLUMN_NAME FROM [INFORMATION_SCHEMA].[COLUMNS] WHERE
TABLE_SCHEMA = 'schemaName' AND
TABLE_NAME = 'tableName' AND
ORDINAL_POSITION <= (SELECT ORDINAL_POSITION FROM [INFORMATION_SCHEMA].[COLUMNS] WHERE
TABLE_SCHEMA = 'schemaName' AND
TABLE_NAME = 'tableName' AND column_name = 'specifiedColumn')
)
ORDER BY
(SELECT COLUMN_NAME FROM [INFORMATION_SCHEMA].[COLUMNS] WHERE
TABLE_SCHEMA = 'schemaName' AND
TABLE_NAME = 'tableName' AND
ORDINAL_POSITION <= (SELECT ORDINAL_POSITION FROM [INFORMATION_SCHEMA].[COLUMNS] WHERE
TABLE_SCHEMA = 'schemaName' AND
TABLE_NAME = 'tableName' AND column_name = 'specifiedColumn')
)
) row_num
FROM
[schemaName].[tableName]
)
DELETE FROM CTE
WHERE row_num > 1;
С уважением,