sql的substr函數
Ⅰ substring在sql語句中是什麼意思
SQL中的 substring 函數是用來截取一個欄位中的其中一部分。
1、substring函數的參數:
expression 字元串、二進制字元串、文本、圖像、列或包含列的表達式。請勿使用包含聚合函數的表達式。
start 整數或可以隱式轉換為 int 的表達式,指定子字元串的開始位置。
length 整數或可以隱式轉換為 int 的表達式,指定子字元串的長度。
2、substring函數的返回值:
如果 expression 是一種支持的字元數據類型,則返回字元數據。如果 expression 是一種支持的二進制數據類型,則返回二進制數據。如果 start = 1,則子字元串從表達式的第一個字元開始。
返回字元串的類型與給定表達式的類型相同。
(1)sql的substr函數擴展閱讀:
結構化查詢語言包含6個部分:
一:數據查詢語言(DQL:Data Query Language):
其語句,也稱為「數據檢索語句」,用以從表中獲得數據,確定數據怎樣在應用程序給出。
保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。
這些DQL保留字常與其他類型的SQL語句一起使用。
二:數據操作語言(DML:Data Manipulation Language):
其語句包括動詞INSERT,UPDATE和DELETE。它們分別用於添加,修改和刪除表中的行。也稱為動作查詢語言。
三:事務處理語言(TPL):
它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:數據控制語言(DCL):
它的語句通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對資料庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。
五:數據定義語言(DDL):
其語句包括動詞CREATE和DROP。在資料庫中創建新表或刪除表(CREAT TABLE 或 DROP TABLE);
為表加入索引等。DDL包括許多與人資料庫目錄中獲得數據有關的保留字。它也是動作查詢的一部分。
六:指針控制語言(CCL):
它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。
結構化查詢語言簡稱SQL。是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。
它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的介面。
結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
參考資料來源:網路-SQL
Ⅱ 含有substr函數的sql查詢語句怎麼寫,急求解!!!
select * from 職工記錄表 where substr(工號,1,4)='2008' and substr(工號,5,1)='2'
Ⅲ sql截取字元串,作為表的行和列
sqlserver中一般用substring來截取字元,mysql中用substr和substring較多,access中一般用mid。
上述函數基本類似:
以substr為例
substr
(str,
pos)
由
中,選出所有從第
位置開始的字元。請注意,這個語法不適用於
sql
server
上。
substr
(str,
pos,
len)
由
中的第
位置開始,選出接下去的
個字元。
Ⅳ substring函數在SQL中怎麼使用
fn:substring($sourceString,$startingLoc)fn:substring($sourceString,$startingLoc,$length)參數$sourceString資源字元串。$startingLoc子字元串在資源字元串中的起點。如果此值為負數或 0,則只返回那些所在位置大於零的字元。如果此值大於 $sourceString 的長度,則返回長度為零的字元串。$length[可選] 要檢索的字元數。如果沒有指定此值,它將返回從 $startingLoc 中指定的位置開始直到字元串末尾的所有字元。備注$length 的值可以大於 $sourceString 值中指定的、位於起始位置後的字元數。在這種情況下,子字元串最多返回到達 $sourceString 末尾時的字元數。字元串中第一個字元位於位置 1。如果 $sourceString 值是空序列,則該值將被作為長度為零的字元串來處理。否則,如果 $startingLoc 或 $length 是空序列,將返回空序列。示例
substring("Hello World",6)
返回"world"
Ⅳ oracle資料庫的sql語句問題:用substr()方法截取字元串,字元串的第一位是0還是1,網上說0,我試一下是1
select
substr('a123456',instr('a123456','a')+1,len('a123456')-instr('a123456','a'))
from
al
instr
返回1,
所以給它+1
,
從第2位開始截取到總長度-『a』這個字元串的位置,
就是
6
,
所以最終會是
select
substr('a123456',2,6)
from
al
這么寫能明白嗎?
Ⅵ sql資料庫截取字元串函數
SQL截取字元串函數:
A.截取從字元串左邊開始N個字元
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select Left(@S1,4)
------------------------------------
顯示結果: http
B.截取從字元串右邊開始N個字元(例如取字元www.163.com)
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select right(@S1,11)
------------------------------------
顯示結果: www.163.com
C.截取字元串中任意位置及長度(例如取字元www)
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select SUBSTRING(@S1,8,3)
------------------------------------
顯示結果: www
以上例子皆是已知截取位置及長度,下面介紹未知位置的例子
2.截取未知位置的函數
A.截取指定字元串後的字元串(例如截取http://後面的字元串)
方法一:
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select Substring(@S1,CHARINDEX('www',@S1)+1,Len(@S1))
------------------------------------
顯示結果: www.163.com
需要注意:CHARINDEX函數搜索字元串時,不區分大小寫,因此CHARINDEX('www',@S1)也可以寫成CHARINDEX('WWW',@S1)
方法二:(與方法一類似)
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select Substring(@S1,PATINDEX('%www%',@S1)+1,Len(@S1))
--此處也可以這樣寫:Select
Substring(@S1,PATINDEX('%//%',@S1)+2,Len(@S1))
------------------------------------
顯示結果: www.163.com
函數PATINDEX與CHARINDEX區別在於:前者可以參數一些參數,增加查詢的功能
方法三:
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select REPLACE(@S1,'http://','')
------------------------------------
顯示結果: www.163.com
利用字元替換函數REPLACE,將除需要顯示字元串外的字元替換為空
方法四:
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='http://www.xrss.cn'
Select
STUFF(@S1,CHARINDEX('http://',@S1),Len('http://'),'')
------------------------------------
顯示結果: www.163.com
函數STUFF與REPLACE區別在於:前者可以指定替換范圍,而後者則是全部范圍內替換
B.截取指定字元後的字元串(例如截取C:\Windows\test.txt中文件名)
與A不同的是,當搜索對象不是一個時,利用上面的方法只能搜索到第一個位置
方法一:
以下是代碼片段:
Declare @S1 varchar(100)
Select @S1='C:\Windows\test.txt'
select right(@S1,charindex('\',REVERSE(@S1))-1)
-------------------------------------
顯示結果: text.txt
利用函數REVERSE獲取需要截取的字元串長度
Ⅶ pl\sql中substr函數怎麼用
substr(字元串,截取開始位置,截取長度) //返回截取的字
substr('Hello World',0,1) //返回結果為 'H' *從字元串第一個字元開始截取長度為1的字元串
substr('Hello World',1,1) //返回結果為 'H' *0和1都是表示截取的開始位置為第一個字元
substr('Hello World',2,4) //返回結果為 'ello'
substr('Hello World',-3,3)//返回結果為 'rld' *負數(-i)表示截取的開始位置為字元串右端向左數第i個字元
Ⅷ pl\sql中substr函數怎麼用
不一樣
比如這兩個
select substr('你好嗎',1,1) from al;
select substrb('你好嗎',1,1) from al;第一個有結果,是「你」,第二個就無結果
因為第一個是按字元位來取,從第一位取一位長度
第二個是按位元組來取,對於漢字來說,一個漢字是2個位元組,這樣就取不出東西來了
Ⅸ sql 裡面substring函數
不一定要用 SUBSTRING,直接用LIKE更簡單
select id,name from kehuxinxi_table where telephone like '%1111'
如果一定要用SUBSTRING 那麼,應該用下面類似的語句,不過,這種寫法的速度是最慢的,而且還沒有考慮長度不夠的問題
select id,name from kehuxinxi_table where substring(telephone, 8, 4) = '1111'