tft每日頭條

 > 生活

 > sql兩表關聯查詢的幾種寫法

sql兩表關聯查詢的幾種寫法

生活 更新时间:2024-12-28 10:32:55

在做業務數據分析的時候,可能會遇到這樣一個場景,需要将多個字段進行拼接,變為一個長字符串

比如年、月、日三個字段拼接成完整的日期,或者姓、名兩個字段拼接成姓名列

這就需要用到SQL查詢中串聯(拼接)方法,這在不同數據庫中語法會有差異,下面會演示MySQL、Oracle、PostgreSQL、SQL Server這四種數據庫中的實現方法。

sql兩表關聯查詢的幾種寫法(SQL入門基礎-如何串聯拼接多列的值)1

1、插入數據

這裡用的是MySQL數據庫,插入原始數據,用于後面的實驗

其他數據庫的插入語法,可能會有細微差别,可自行調整

CREATE TABLE IF NOT EXISTS `students` ( `id` varchar(10) NOT NULL, `name` varchar(10) NOT NULL, `age` datetime NOT NULL, `sex` varchar(10) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8; insert into `students` values('01' , '趙雷' , '1990-01-01' , '男'); insert into `students` values('02' , '錢電' , '1990-12-21' , '男'); insert into `students` values('03' , '孫風' , '1990-05-20' , '男'); insert into `students` values('04' , '李雲' , '1990-08-06' , '男'); insert into `students` values('05' , '周梅' , '1991-12-01' , '女');

得到數據的形式

sql兩表關聯查詢的幾種寫法(SQL入門基礎-如何串聯拼接多列的值)2

2、在MySQL中進行串聯拼接

使用concat函數對不同字段進行拼接,用法:

select concat(列1,列2,列3...) from...

我們對上表中name、age字段進行串聯:

SELECT concat(a.name,'的生日是:',a.age) FROM `students` a

結果:

sql兩表關聯查詢的幾種寫法(SQL入門基礎-如何串聯拼接多列的值)3

2、在PostgreSQL、Oracle中進行串聯拼接

使用||符号對不同字段進行拼接,用法:

select 列1 || 列2 || 列3... from...

我們對上表中name、age字段進行串聯:

SELECT a.name || '的生日是:' || a.age FROM students a

3、在SQL Server中進行串聯拼接

使用 符号對不同字段進行拼接,用法:

select 列1 列2 列3... from...

我們對上表中name、age字段進行串聯:

SELECT a.name '的生日是:' convert(varchar,a.age) FROM students a

這裡要注意SQL Server中的 隻可以用于字符串類型的字段拼接,不能将字符串與數字、日期等其他類型混合拼接,所以如果你想拼接非字符串類型,可以用 convert函數進行字符串的轉換。

當然 SQL Server中的 也可以用于數值間的相加,也就是加法運算

其他數據庫的用法與上述這些大同小異,不再一一列舉。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved