【问题标题】:Inserting values based on unique values of another table(Normalization)根据另一个表的唯一值插入值(规范化)
【发布时间】:2018-05-31 10:15:35
【问题描述】:

我有 A、B 和 C 列的 Table1。 我想创建表 2 并为 ColumnA、Table1(唯一)中的值创建主键,然后相应地填充 Table1 中的值 B 和 C(基于 A 列的唯一值)。

任何帮助将不胜感激。 编辑:我正在使用 SQL 服务器并尝试使用 INSERT INTO...SELECT DISTINCT。

【问题讨论】:

标签: sql sql-server database tsql


【解决方案1】:

如果你使用的是 MS SQL Server,试试这个

WITH CTE
AS
(
    SELECT
        RN = ROW_NUMBER() OVER(PARTITION BY ColumnA ORDER BY ColumnA),
        ColumnA,
        ColumnB,
        ColumnC
        FROM YourTable
)
INSERT INTO Table2
(
    ColumnA,
    ColumnB,
    ColumnC
)
SELECT
    ColumnA,
    ColumnB,
    ColumnC
    FROM CTE
        WHERE RN = 1

【讨论】:

  • 谢谢,但我收到错误消息 156,级别 15,状态 1,第 136 行关键字“订单”附近的语法不正确
  • 您使用的确切查询是什么?
  • 我使用了与您建议的相同的查询。除了有 7 列而不是 3
  • 错误出现在 order by 部分,因此您可能在 order by 之前或之后遗漏了一些空格或其他内容。请检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-17
  • 2017-10-14
  • 2023-02-23
  • 2012-04-17
相关资源
最近更新 更多