SQL Concatenate函数

SQL Concatenate函数

可能会出现这样的情况,您需要连接存储在单个表的两个不同列中的字符串。为了连接这些字符串, 在SQL中使用字符串连接操作,使用 CONCAT() 函数。

  • 可以将两个以上的字符串组合成一个字符串。
  • 要组合的字符串可以存储在表的两个不同列中,也可以作为一个字符串独立存在而不存储到表中。
  • 在串联存储在表的两个不同列中的字符串之后,最终连接后的字符串还可以存储在表的列中。

让我们看一些实际例子来更清楚地理解这个概念。我们将使用MySQL数据库来编写所有的查询。

考虑我们有以下字符串:

String 1: Hello
String 2: Allen

现在,编写一个查询将两个字符串连接成一个字符串并将其存储在一个变量中。

查询:

SELECT CONCAT ('Hello', ' Allen') AS FinalString;

两个字符串字面值被传递给 CONCAT() 函数。连接后的字符串存储在 ‘FinalString’ 中。

你将得到以下输出:

FinalString   
---  
Hello Allen 

最终连接的字符串是“Hello Allen”,存储在’FinalString’中。

假设我们有多个如下所示的字符串:

String 1:Excited

String 2:to

String 3:learn

String 4:SQL

String 5:database

现在,编写一个查询来连接上述所有字符串以形成一个单一的字符串并将其存储在一个变量中。

查询:

mysql> SELECT CONCAT ('Excited', ' to', ' learn', ' SQL', ' database') AS FinalString;

5个字符串字面量传递给CONCAT()函数。拼接后的字符串存储在FinalString中。

你将得到以下输出:

FinalString   
---  
Excited to learn SQL database

最终拼接的字符串是”Excited to learn SQL database”,存储在’FinalString’中。

我们也可以将字符串和数值文字结合起来形成一个字符串。

让我们看一下这方面的示例。

查询:

mysql> SELECT CONCAT ('SQL', '1000') AS FinalString;

将一个字符串字面量(SQL)和一个数字字面量(1000)传递给CONCAT()函数。

你将得到以下输出:

FinalString   
---  
SQL1000   

最终的连接字符串是“SQL1000”,存储在’FinalString’中。

让我们来看几个示例,来连接存储在表的不同列中的字符串。

考虑我们有一个包含以下数据的物品表:

ID Item_Name Item_Quantity Item_Price Purchase_Date
1 Soap 5 200 2021-07-08
2 Toothpaste 2 80 2021-07-10
3 Pen 10 50 2021-07-12
4 Bottle 1 250 2021-07-13
5 Brush 3 90 2021-07-15
6 Notebooks 10 1000 2021-07-26
7 Handkerchief 3 100 2021-07-28

示例 1:

编写一个查询,将项名称与存储在items表中的相应价格进行拼接。

查询:

mysql> SELECT CONCAT ( Item_Name, Item_Price ) AS Item_Details FROM items;

将items表中存储在’Item_Name’和’Item_Price’列中的两个字符串作为参数传递给CONCAT()函数。

您将获得以下输出:

Item_Details   
---  
Soap200   
Toothpaste80   
Pen50   
Bottle250   
Brush90   
Notebooks1000   
Handkerchief100   

所有存储在’Item_Name’中的项目名称和存储在’Item_Price’中的项目成本都是从项目表按行连接的,并存储在’Item_Details’中。SELECT查询显示存储在’Item_Details’中的所有值。

示例2:

编写一个查询,将项目ID与存储在项目表中的相应名称连接起来。

查询:

mysql> SELECT CONCAT ( ID, Item_Name ) AS Item_Details FROM items;

将存储在项目表的“ID”和“Item_Name”列中的两个字符串作为CONCAT()函数的参数传递。

您将获得以下输出:

Item_Details   
---  
1Soap   
2Toothpaste   
3Pen   
4Bottle   
5Brush   
6Notebooks   
7Handkerchief   

所有存储在’ID’中的物品编号和存储在’Item_Name’中的物品名称都从项目表中按行连接起来,并存储在’Item_Details’中。SELECT查询显示存储在’Item_Details’中的所有值。

示例3:

编写一个查询将物品编号与存储在物品表中的物品名称以及物品编号和物品名称之间的空格连接起来。

查询:

mysql> SELECT CONCAT ( ID, ' ', Item_Name ) AS Item_Details FROM items;

将存储在items表的’ID’列和’Item_Name’列中以空格分隔的两个字符串作为参数传递给CONCAT()函数。

您将获得以下输出:

Item_Details   
---  
1 Soap   
2 Toothpaste   
3 Pen   
4 Bottle   
5 Brush   
6 Notebooks   
7 Handkerchief   

将存储在’ID’中的所有项目ID以及存储在’Item_Name’中的所有项目名称按行连接起来,中间用一个空格分隔,并存储在’Item_Details’中。SELECT查询显示存储在’Item_Details’中的所有值。

示例4:

编写一个查询,将项目名称与其对应的ID串联起来。在每个项目ID之前应放置一个字符串常量’assigned to’,在每个项目ID之后应放置另一个字符串常量’as an item ID’。

查询:

mysql> SELECT CONCAT ( Item_Name, ' assigned to ' , ID, ' as an item ID' ) AS DETAILS FROM items;

‘Item_Name’, ‘assigned to’, ‘ID’ 和 ‘as an item ID’ 被作为参数传递给 CONCAT() 函数,并将连接后的字符串存储在 ‘Item_Details’ 中。

你将获得以下输出:

Item_Details
Soap assigned to 1 as an item ID
Toothpaste assigned to 2 as an item ID
Pen assigned to 3 as an item ID
Bottle assigned to 4 as an item ID
Brush assigned to 5 as an item ID
Notebooks assigned to 6 as an item ID
Handkerchief assigned to 7 as an item ID

将保存在’Item_Name’中的所有项目名称和保存在’ID’中的项目id从项目表按行连接起来,并在每个项目id之前和之后分别加上字符串文字’assigned to’和’as an item ID’。整个连接后的字符串存储在’Item_Details’中,并由SELECT查询显示。

示例5:

编写一个查询,将项目表中的项目名称与其购买日期连接在一起,并在项目名称和购买日期之间加上字符串文字” is purchased on”。

查询:

mysql> SELECT CONCAT ( Item_Name, " is purchased on " , Purchase_Date) AS Item_Details FROM items;

将items表中’Item_Name’和’Purchase_Date’列中的两个字符串与字符串常量’ is purchased on ‘连接在一起,并将连接后的字符串作为参数传递给CONCAT()函数。

您将获得以下输出:

Item_Details
Soap is purchased on 2021-07-08
Toothpaste is purchased on 2021-07-10
Pen is purchased on 2021-07-12
Bottle is purchased on 2021-07-13
Brush is purchased on 2021-07-15
Notebooks is purchased on 2021-07-26
Handkerchief is purchased on 2021-07-28

将存储在’Item_Name’中的所有项目名称,以及存储在’Purchase_Date’中的购买日期,按行连接起来,它们之间每一个项目名称和购买日期之间以字符串“ is purchased on ”连接,存储在’Item_Details’中。SELECT查询显示在’Item_Details’中存储的所有值。

示例6:

编写一个查询,将每个项目名称与相应的数量以字符串”Cost of”连接起来,该字符串应放置在每个项目数量之前,项目数量后面添加一个空格,然后在每个项目名称之后放置一个字符串”is”,并将其进一步与相应的项目价格连接起来。

查询:

mysql> SELECT CONCAT ("Cost of " , Item_Quantity, " ", Item_Name, " is ", Item_Price) AS Item_Details FROM items;

您将获得以下输出:

Item_Details
Cost of 5 Soap is 200
Cost of 2 Toothpaste is 80
Cost of 10 Pen is 50
Cost of 1 Bottle is 250
Cost of 3 Brush is 90
Cost of 10 Notebooks is 1000
Cost of 3 Handkerchief is 100

将存储在’Item_Quantity’中的所有项目数量、存储在’Item_Name’中的项目名称以及存储在’Item_Price’中的项目成本按行从项目表中连接,连接项目数量和项目名称之前连接字符串文字’Cost of ‘和’is’。此外,’is’与项目成本连接。整个连接字符串存储在’Item_Details’中,并通过SELECT查询显示。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程