原創|大數據新聞|編輯:況魚杰|2020-12-21 10:25:08.917|閱讀 234 次
概述:每個從事數據工作的人都有不同的檢索數據的方法,這取決于他們想如何使用數據。SQL旨在為我們提供一種借助工具提取任何格式數據的方法,比如SQL子串函數。這個函數使我們能夠從一個字符串中提取特定的字符。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
每個從事數據工作的人都有不同的檢索數據的方法,這取決于他們想如何使用數據。SQL旨在為我們提供一種借助工具提取任何格式數據的方法,比如SQL子串函數。這個函數使我們能夠從一個字符串中提取特定的字符。
在這篇關于SQL中子串函數的文章中,我們將學習以下內容:
SUBSTRING()是一個函數,它可以讓我們提取字符串的子部分,這些子部分被稱為子串。我們要提取的字符串可以在函數本身中指定,也可以是表列的一部分。使用這個函數,我們可以從一個字符串中提取任意數量的子串。為了了解這個函數,我們來看看它的使用語法。
SUBSTRING(string, start, length)
注意:一個n字符字符串的第一個字符的值為1,最后一個字符的值為n。從尾部開始,最后一個字符的值為-1,第一個字符的值為-n。
例如,SUBSTRING('ABCDEF', 2, 3)返回'BCD'。
讓我們把上面討論的概念應用到字符串和表列上。
SUBSTRING()函數可以與SELECT命令一起使用,以檢索子串。從指定字符串的第三個字符中提取五個字符:
任何空白的地方也被歸為字符。這將導致以下結果:
要從指定的字符串末尾的第七個位置提取四個字符,你需要輸入以下內容:
我們可以看到,"o "是被檢索的四字符字符串的起始字符。
以上查詢的結果如下:
要從指定字符串的第二個字符中提取整個字符串,你將輸入以下代碼:
這表明沒有為length參數指定值,所以將返回從起始位置開始的整個字符串。
我們也可以用這個函數從表中的列中提取字符。讓我們來看看是如何實現的。
從表的列中檢索子串的語法如下:
SELECT SUBSTRING(column_name, start, length) FROM table_name WHERE [condition]
注意:WHERE子句是可選的。讓我們用下面的表作為一個例子:
為了從表中提取每個員工的 "Dept_ID "的最后三位數字,我們將使用以下查詢。
這將導致以下結果:
另外,我們也可以使用下面的查詢來檢索上述結果。這里,我們把起始位置指定為從末尾開始的第三個位置。我們不需要指定長度,因為我們需要從指定的起始位置開始的所有字符。
這將導致以下結果(這表明結果和之前的查詢結果是一樣的。):
要提取工資大于30000的每個員工的ID和名字的第一個字母,使用以下代碼:
這將導致:
上面查詢的WHERE子句中指定的條件過濾了返回的行數。讓我們看看當起始位置大于字符串的長度時會發生什么。為了從第三個字符中提取所有員工的ID,我們將輸入以下內容:
這將導致以下結果:
所有的行都會返回一個空白,因為這些記錄的長度都是兩個字符。
有時,我們只需要從整個數據串中取出幾個字符,SQL子串函數有助于實現這一目的。例如,當我們只需要知道某人名字的第一個字母,或者年份的最后兩位數字就足夠了,使用SQL子串函數就是完美的解決方案。
關于慧都大數據分析平臺
慧都大數據分析平臺「GetInsight®」升級發布,將基于企業管理駕駛艙、產品質量分析及預測、設備分析及預測等大數據模型的構建,助力企業由傳統運營模式向數字化、智能化的新模式轉型升級,抓住數據經濟的發展勢頭,提供管理效能,精準布局未來。了解更多,請聯系。
慧都大數據專業團隊為企業提供商業智能大數據平臺搭建,免費業務咨詢,定制開發等完整服務,快速、輕松、低成本將任何Hadoop集群從試用階段轉移到生產階段。
歡迎撥打慧都熱線023-68661681或咨詢慧都在線客服,我們有專業的大數據團隊,為您提供免費大數據相關業務咨詢!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn