【问题标题】:How to concatenate two columns into a new one in sql?如何在sql中将两列连接成一个新列?
【发布时间】:2018-10-15 14:11:34
【问题描述】:

我在将两列合并为一个新列时遇到问题。我只想将列 IBAN 和 Currency_code 连接到 CheckSum 中。当我创建 SELECT * 时,它就会出现。

DROP TABLE IF EXISTS transaccio;
CREATE TABLE transaccio (
   IBAN varchar(255),
   Currency_code varchar (255),
   CheckSum varchar(255)
);

我提出了两个选择,但没有一个可行。

选项一:

INSERT INTO transaccio(CheckSum) SELECT (CONCAT(IBAN, Currency_code)) FROM transaccio;

选项二:(它说不知道从哪里得到 IBAN 和 Currency_code)

INSERT INTO transaccio(CheckSum) VALUES (CONCAT(IBAN, Currency_code));

【问题讨论】:

  • 哪个数据库 MySQL 或 PostgreSQL?但两者都应该支持 CONCAT 功能。
  • 试试INSERT INTO transaccio(CheckSum, IBAN, Currency_code) VALUES (CONCAT(IBAN, Currency_code), 'IBAN', 'Currency_code');.. 但是从这个问题很难理解你是否正在寻找更新查询的插入..
  • 除了我想知道您是否真的想为货币系统生成如此简单的 geuss 校验和。
  • 对不起,我是新人哈哈,完了!

标签: php mysql sql postgresql datagrip


【解决方案1】:

您需要使用Update 查询而不是Insert

UPDATE transaccio 
SET CheckSum = CONCAT(IBAN, Currency_code);

但这似乎是一个Generated Column 问题。根据您的 MySQL 版本,您可以改用生成的列。

PostgreSQL本身不支持生成列/虚拟列。您可以参考这个答案:https://dba.stackexchange.com/a/183265/27070 在 PostgreSQL 中模拟它们

【讨论】:

  • 为了更好地解决这个问题,PostgreSQL 本身不支持生成列/虚拟列这是dba.stackexchange.com/a/183265/27070 在 PostgreSQL 中模拟生成列/虚拟列的方式..
  • @RaymondNijland 请随时编辑答案并添加这个非常有趣的信息
  • @PedroGarcía-Mauriño 乐于提供帮助 :)
【解决方案2】:

您将需要 UPDATE 语句:

UPDATE transaccio
SET CheckSum = CONCAT(IBAN, Currency_code);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-25
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多