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