SQL CONCAT()函数
SQL CONCAT() 函数接受一个或多个字符串值作为参数,将所有给定的字符串连接/合并起来并返回结果。
当我们显示结果时, Concat 服务将Null值转换为空字符串。该运算符用于连接字符字符串和列字符串。在CONCAT函数中,我们可以使用字面量。字面量是包含在SELECT语句中的数字、字符或日期。
语法
以下是此SQL CONCAT()函数的语法-
CONCAT(str1,str2,... strN);
SELECT CONCAT(str1,str2,... strN);
这个语法使用了带有SQL表列名的 CONCAT 函数 –
SELECT Column1, Column2, ………… ColumnN, CONCAT(Column1, Column2, ………… ColumnN) AS CONCAT_Function FROM table name;
参数
- str - CONCAT函数至少需要两个参数,并且最多可以接受254个参数。
返回值
SQL CONCAT()函数返回与操作符从相同表达式返回的字符串相同的字符串操作数。
示例
以下是SQL CONCAT()函数的示例,我们只向它传递了一个参数。因此,在这里没有进行连接操作。
SELECT CONCAT('Revathi');
结果
以下是上述查询的输出-
+-------------------+
| CONCAT('Revathi') |
+-------------------+
| Revathi |
+-------------------+
示例
以下是SQL CONCAT() 函数的一个示例,我们在这里传递了两个参数进行拼接 –
SELECT CONCAT('Tutorials', 'point');
输出
上述SQL查询产生以下输出−
+------------------------------+
| CONCAT('Tutorials', 'point') |
+------------------------------+
| Tutorialspoint |
+------------------------------+
示例
以下是SQL CONCAT() 函数的一个示例,我们传递多个参数进行连接操作 –
SELECT CONCAT('Structured', 'Query', 'Language') AS CONCAT_Function;
输出
执行上述查询后,将产生以下输出结果:
+-------------------------+
| CONCAT_Function |
+-------------------------+
| StructuredQueryLanguage |
+-------------------------+
示例
这里,让我们将二进制字符串作为参数传递给 CONCAT() 函数,它将返回一个二进制字符串。
SELECT CONCAT('10001011', '10000000') AS CONCAT_function;
输出
在执行上述查询时,它将产生以下输出 –
+------------------+
| CONCAT_function |
+------------------+
| 1000101110000000 |
+------------------+
示例
同样地,如果您将非二进制值作为参数传递给 CONCAT() 函数,它将返回一个非二进制字符串。
SELECT CONCAT('Good', 'Morning') AS CONCAT_Function;
输出
执行以上查询后,将产生以下输出结果:
+-----------------+
| CONCAT_Function |
+-----------------+
| GoodMorning |
+-----------------+
在这里,我们可以将二进制和非二进制值作为参数传递给这个 CONCAT() 函数。
SELECT CONCAT('Rollno', '110101') AS CONCAT_Function;
输出
执行上述查询后,将产生以下输出结果:
+-----------------+
| CONCAT_Function |
+-----------------+
| Rollno110101 |
+-----------------+
示例
如果将数字值作为参数传递给 CONCAT() 函数,它会将数字值转换为其等效的非二进制字符串形式 –
SELECT CONCAT('62001', '12345', '14203') AS CONCAT_Function;
输出
执行上述查询后,将产生以下输出:
+-----------------+
| CONCAT_Function |
+-----------------+
| 620011234514203 |
+-----------------+
示例
以下是一个示例,在这个示例中我们将一个空字符串作为参数传递给 CONCAT() 函数:
SELECT CONCAT(' ');
输出
在执行上述查询时,它将产生以下输出−
+-------------+
| CONCAT(' ') |
+-------------+
| |
+-------------+
示例
如果我们将多个参数传递给 CONCAT() 函数并且任何一个参数为空,则结果也会为空 –
SELECT CONCAT('ALL', 'IS', 'WELL', NULL) AS CONCAT_Function;
输出
在执行上述查询时,会产生以下输出结果-
+-----------------+
| CONCAT_Function |
+-----------------+
| NULL |
+-----------------+
示例
您可以将表列作为参数传递给 CONCAT() 函数,将字符或字符串转换为 连接 。假设我们使用 CREATE 语句创建了一个名为Customers的表,如下所示:
create table CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR(15) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(25),
SALARY DECIMAL(10, 4), PRIMARY KEY(ID)
);
现在,让我们使用INSERT语句将 七 条记录插入到customers表中,如下所示:-
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(6, 'Komal', 22, 'MP', 4500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(7, 'Muffy', 24, 'Indore', 10000.00);
下面的SELECT查询使用了CUSTOMERS表中ID和NAME列的CONCAT函数:
SELECT ID, NAME, CONCAT(ID, NAME) AS CONCAT_Function FROM CUSTOMERS;
输出
执行以上语句后,会产生以下输出结果 –
+----+----------+-----------------+
| ID | NAME | CONCAT_Function |
+----+----------+-----------------+
| 1 | Ramesh | 1Ramesh |
| 2 | Khilan | 2Khilan |
| 3 | kaushik | 3kaushik |
| 4 | Chaitali | 4Chaitali |
| 5 | Hardik | 5Hardik |
| 6 | Komal | 6Komal |
| 7 | Muffy | 7Muffy |
+----+----------+-----------------+
以下SELECT查询使用了CONCAT函数和CUSTOMERS表的所有列,列包括ID、NAME、AGE、ADDRESS和SALARY。
SELECT ID, NAME, AGE, ADDRESS, SALARY, CONCAT(ID, NAME, AGE, ADDRESS, SALARY) AS CONCAT_Function FROM CUSTOMERS;
输出
执行上述语句后,会产生以下输出结果:
+----+----------+-----+-----------+------------+-----------------------------+
| ID | NAME | AGE | ADDRESS | SALARY | CONCAT_Function |
+----+----------+-----+-----------+------------+-----------------------------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.0000 | 1Ramesh32Ahmedabad2000.0000 |
| 2 | Khilan | 25 | Delhi | 1500.0000 | 2Khilan25Delhi1500.0000 |
| 3 | kaushik | 23 | Kota | 2000.0000 | 3kaushik23Kota2000.0000 |
| 4 | Chaitali | 25 | Mumbai | 6500.0000 | 4Chaitali25Mumbai6500.0000 |
| 5 | Hardik | 27 | Bhopal | 8500.0000 | 5Hardik27Bhopal8500.0000 |
| 6 | Komal | 22 | MP | 4500.0000 | 6Komal22MP4500.0000 |
| 7 | Muffy | 24 | Indore | 10000.0000 | 7Muffy24Indore10000.0000 |
+----+----------+-----+-----------+------------+-----------------------------+