如何在 sql 中将两列连接成一个新列?

How to concatenate two columns into a new one in sql?

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

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

我提出了两个选项,但 none 个可行。

选项一:

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

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

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

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

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

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

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

中模拟它们

您将需要 UPDATE 语句:

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