SQL 查询 - 要列和更新的行

Posted

技术标签:

【中文标题】SQL 查询 - 要列和更新的行【英文标题】:SQL QUERY - ROWS TO COLUMN AND UPDATE 【发布时间】:2020-10-08 15:03:32 【问题描述】:

大家好,

1/ 我想做一个 sql 查询,将结果从行转换为列,如图所示。有可能吗?

2/ 如何用第一个表更新第二个表?

【问题讨论】:

这能回答你的问题吗? mysql - turn table into different table 如果您有静态列计数,请查看重复项,如果计数是动态的,您必须为此使用 INFORMATION SCHEMA.columns 并对其进行编程 旋转你的显示器 【参考方案1】:

您可以在查询中使用

select 'EH545WL' as name, EH545WL as value from car union select 'FJ281TJ' as name, FJ281TJ as value from car;

如果你使用这个查询,你可以得到你想要的结果。 谢谢

【讨论】:

【参考方案2】:

您可以通过多种方式转换此数据。

创建表:

CREATE TABLE yourTable([EH545WL] varchar(10), [FJ281TJ] varchar(10));

INSERT INTO yourTable
VALUES
    (0,0);

反透视表:

SELECT ID,Value
FROM yourTable
UNPIVOT (value for ID in ([EH545WL],[FJ281TJ])) up

【讨论】:

好的,非常感谢!还有一个问题是如何用第一个表更新第二个表? @JulieTarnaud 您可以做的一件事是在获得所需的输出后,删除第一个表。如果它对您有用,请投票/接受答案。 我不明白你的意思。因为我需要第一个表来更新第二个,但我不知道如何实现更新 @JulieTarnaud 请查看更新后的 sql 代码,该代码可让您在 unpivot 模式下创建表和更新同一个表。

以上是关于SQL 查询 - 要列和更新的行的主要内容,如果未能解决你的问题,请参考以下文章

sql 行转列

将 Excel 数据添加到 Access 的 SQL 更新查询

vb.net 解析查询灵活列名时出错

通过 * 选择所有列和在 SQL 查询中指定所有列名来检索数据有啥区别? [复制]

使用 SQL 或 PL/SQL 对多个表中的列和表名进行动态查询

更新异常。 Mysql sql不同的行影响计数