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

时间:2018-10-15 14:11:34

标签: php mysql sql postgresql datagrip

将两列合并为新列时遇到问题。我只想将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));

2 个答案:

答案 0 :(得分:4)

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

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

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

PostgreSQL 本身不支持生成的列/虚拟列。您可以参考以下答案:https://dba.stackexchange.com/a/183265/27070以在PostgreSQL中进行仿真

答案 1 :(得分:2)

您将需要UPDATE语句:

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