SQL中concat和substr組合運用解析
concat和substr組合運用
背景
最近客戶要我給一個腳本說查數(shù)據(jù),說是要 截取sql表中某一個字段的前5個數(shù)值 進行查找。
剛開始我以為很簡單就接了下來開始想,想了之后發(fā)現(xiàn)并沒有這么簡單(自己太菜了),就去問朋友(大數(shù)據(jù)開發(fā))。
給了我 這兩個函數(shù)(concat和substr)讓我自己去玩 ,但是客戶一直再催沒辦法只能找我們自己的開發(fā)寫腳本。
Ten minutes later…
真的就10分鐘,開發(fā)發(fā)來了腳本,果然就是用的這兩個函數(shù),還得是大佬。
腳本有放在最后一章進行分析
concat介紹
concat()可以理解為就是拼接函數(shù),用于將多個字符串連接起來,形成一個單一的字符串
concat(id, name, work_date) 這個函數(shù)會把三個字段的數(shù)值拼接到一個字段
更詳細的頁面學習:
鏈接:link
substr介紹
substr()此函數(shù)就相當于一個截取操作
substr(string ,pos,len) string:指定字符串 pos:規(guī)定字符串從何處開始 len:要截取字符串的長度
更詳情的學習請參考sql中的substr()函數(shù)用法
前言:
五一閑來無事多更新幾篇關于sql語句的文章吧,sql中要是想截取某個字段值作為匹配條件怎么辦呢,這里可以使用substr()函數(shù)了。下面請看例子吧。
substr()函數(shù)
substr()函數(shù)用于截取對應字段指定長度。
SUBSTR(string ,pos,len) string:指定字符串 pos:規(guī)定字符串從何處開始,(這里的第一個位置是1而不是0)為正數(shù)時則從字段開始出開始,為負數(shù)則從結(jié)尾出開始。 len:要截取字符串的長度。(是從1開始計數(shù)而不是0)
示例:
現(xiàn)在我們舉個例子,現(xiàn)在想通過時間字段得到每個小時15min/30min/45min/00min的數(shù)據(jù),時間字段data_date(YYYY-MM-DD HH:mm)
select * from meter_table
where substr(data_date,15,2) in ('00','15','30','45')最后SQL語句分析
最終閹割版的腳本展示
replace into student (select name,concat(substr(A.stuid,1,5),'0'),A.sex from student A,score B WHERE substr(A.stuid,6,1)='1' and concat(substr(A.stuid,1,5),'0')=B.stuid);
replace 替換語句
concat(substr(A.stuid,1,5),‘0’)
截?。╯ubstr函數(shù))表A(student表)中stuid字段的前1-5個數(shù)值,再與‘0’進行拼接成行的字段。
本來學號為665511,現(xiàn)在就會變成了665510
Student表中由于某種原因,stuid字段里面的數(shù)值最后一位變成了1,Score表中有以‘0’結(jié)尾的正確學號,這腳本的目的就是把Student表中的錯誤數(shù)據(jù)替換。
到此這篇關于SQL中concat和substr組合運用的文章就介紹到這了,更多相關SQL中concat和substr內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
sql server把退款總金額拆分到盡量少的多個訂單中詳解
這篇文章主要給大家介紹了關于sql server把退款總金額拆分到盡量少的多個訂單中的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12
批量更新數(shù)據(jù)庫所有表中字段的內(nèi)容,中木馬后的急救處理
這里對非ntext,nvarchar,image字段有效,這些字段要別外處理. 這下面的內(nèi)容,部分我是自己用過的.對于ntext等字段大于8000的我沒有試過.一起寫在這里2009-09-09
SQL Server2022安裝教程的實現(xiàn)步驟(圖文教程)
在日常的工作中,sql server作為一款常用的數(shù)據(jù)庫管理系統(tǒng),安裝與配置就顯得非常重要,本文主要介紹了SQL Server2022安裝教程的實現(xiàn)步驟,感興趣的可以了解一下2023-09-09
SQLSERVER 本地查詢更新操作遠程數(shù)據(jù)庫的代碼
SQLSERVER 本地查詢更新操作遠程數(shù)據(jù)庫的代碼,需要的朋友可以參考下2012-11-11
sqlserver 2000數(shù)據(jù)庫同步 同步兩個SQLServer數(shù)據(jù)庫的內(nèi)容
程序代碼可以有版本管理CVS進行同步管理,可是數(shù)據(jù)庫同步就非常麻煩,只能自己改了一個后再去改另一個,如果忘記了更改另一個經(jīng)常造成兩個數(shù)據(jù)庫的結(jié)構(gòu)或內(nèi)容上不一致.2010-05-05
SQL設置SQL Server最大連接數(shù)及查詢語句
今天遇到了關于Sql Server最大連接數(shù)(Max Pool Size)的問題,后來通過查找一些資料解決了,所以想著總結(jié)下關于SQL Server最大連接數(shù)的內(nèi)容,所以這篇文章主要介紹了SQL設置SQL Server最大連接數(shù)與查詢語句,有需要的朋友們可以參考借鑒。2016-12-12
SQLServer用t-sql命令批量刪除數(shù)據(jù)庫中指定表(游標循環(huán)刪除)
這篇文章主要介紹了SQLServer用t-sql命令批量刪除數(shù)據(jù)庫中指定表的方法,大家參考使用2013-11-11

