資料庫截取字元串
① mysql的查詢中怎麼截取字元串
要視情況而定,不同的要求有不同的截取辦法。
可分為從左往右截取,從右往左截取,從第幾位截取,關鍵字截取。步驟如下。
② 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獲取需要截取的字元串長度
③ substring的用法 怎麼截取字元串
返回一個新的字元串,它是此字元串的一個子字元串。該子字元串始於指定索引處的字元,一直到此字元串索引末尾。在SQLserver資料庫中,用於截取字元串的某部分。
subString的用法
public static void main(String[] args) {
// substring(beginIndex,endindex); 根據索引用來截取 String 類型的值 返回一個新的字元串
// 參數: beginIndex - 開始處的索引(包括)。
// endindex 結尾處索引(不包括)。
String s="abcdef"; //重
s= s.substring(1,5);
System.out.println(s);
}
substring雙語例句
The Substring function will extract text from a source string.
Substring函數將從一個源字元串中提取文本。
Improved Algorithm for BM String Matching Based on Prefix Substring
基於前綴的BM串匹配改進演算法
Scalable Distributed Data Structure for Substring Searching
具有子串檢索功能的可擴展分布式數據結構
Returns the index of the first character of a specified substring in a string.
返回指定子串首字元在串中的索引。
The length argument specifies the length of the desired substring.
長度參數指定了所需子字元串的長度。
④ mssql資料庫截取字元
mssql中截取字元串可以用left,right,substring函數。
left,是從字元左邊開始截取,如:截取abcdefg字元串中的前三個字元:
selectleft('abcdefg',3);
其中3為截取的長度。
rigth是從字元右邊開始截取,如截取abcdefg字元串中的後三個字元:
selectright('abcdefg',3);
其中3為截取的長度。
substring,是從任意位置截取,如截取abcdefg字元串中的第二到第四個字元:
selectsubstring('abcdefg',2,3);
其中2為開始截取的位數,3為截取的長度。
⑤ 資料庫中substr是什麼意思
資料庫中substr的意思是用來對字元串進行截取。表示被截取的字元串或字元串表達式。
語法:substr(strings|express,m,[n]) strings|express :被截取的字元串或字元串表達式,m 從第m個字元開始截取,n 截取後字元串長度為n。
函數參數start或length任意值為空,那麼結果為空。
(5)資料庫截取字元串擴展閱讀
datalength(Char_expr) 返回字元串包含字元數,但不包含後面的空格。
substring(expression,start,length) 不多說了,取子串。
right(char_expr,int_expr) 返回字元串右邊int_expr個字元。
upper(char_expr) 轉為大寫
lower(char_expr) 轉為小寫
space(int_expr) 生成int_expr個空格
replicate(char_expr,int_expr)復制字元串int_expr次
reverse(char_expr) 反轉字元串
⑥ sql 如何截取一個欄位里某一字元串中間的字元
--這個查詢需要注意的是qwer後的需要查詢的字元串必須是一個空格,不能有的是一個空格有的是兩個。也就是格式要固定。
--定義參數
create table #a (string varchar(max))
declare @sql varchar(max)
declare @a varchar(max)
select @a ='asdf qwer zxcv 1234 qwer yuchor 3452 qwer abcd 7893'--這個是要查詢的字元串
---------------------------查詢qwer後面的字元串----------------------------------------
while charindex('qwer',@a)<>0
begin
select @a=SUBSTRING ( @a,charindex('qwer',@a)+5,LEN(@a)-charindex('qwer',@a)-4)
insert into #a values (@a)
end
select SUBSTRING (LTRIM ( string) ,1,charindex(' ',LTRIM ( string))) as result from #a
--查詢結果
result
zxcv
yuchor
abcd
⑦ Oracle中如何截取字元串的後10位
1、使用Oracle語句select substr('12345',greatest( -位數,-length('12345')),位數) from al。輸入後程序會自動截取該字元串的指定長度。
2、表達式中的「位數」輸入格式是數字形式。如截取後10位,則輸入數字10,也可以使用這個語句substr(字元串,截取開始位置,截取長度)。
3、這個公式需要注意的是,若最後一個截取長度參數為空,則表示從截取開始位置起截到最末。若截取開始位置 為大於0的數字,則表示從字元串左數幾位開始。若截取開始位置 為小於0的數字,則表示從字元串右數幾位開始。
(7)資料庫截取字元串擴展閱讀:
字元串的轉化方法如下:
可以用 (string) 標記或者strval()函數將一個值轉換為字元串。當某表達式需要字元串時,字元串的轉換會在表達式范圍內自動完成。例如當使用echo()或者print()函數時,或者將一個變數值與一個字元串進行比較的時候。閱讀手冊中有關類型和類型戲法中的部分有助於更清楚一些。參見settype()。
布爾值TRUE將被轉換為字元串 "1",而值FALSE將被表示為 ""(即空字元串)。這樣就可以隨意地在布爾值和字元串之間進行比較。
整數或浮點數數值在轉換成字元串時,字元串由表示這些數值的數字字元組成(浮點數還包含有指數部分)。
數組將被轉換成字元串 "Array",因此無法通過echo()或者print()函數來輸出數組的內容。請參考下文以獲取更多提示。
對象將被轉換成字元串 "Object"。如果因為調試需要,需要將對象的成員變數列印出來,請閱讀下文。如果希望得到該對象所依附的類的名稱,請使用函數get_class()。自 php 5 起,如果合適可以用 __toString() 方法。
資源類型總是以 "Resource id #1" 的格式被轉換成字元串,其中 1 是 php 在運行時給資源指定的唯一標識。如果希望獲取資源的類型,請使用函數get_resource_type()。
NULL將被轉換成空字元串。
正如以上所示,將數組、對象或者資源列印出來,並不能提供任何關於這些值本身的有用的信息。請參閱函數print_r()和var_mp(),對於調試來說,這些是更好的列印值的方法。
可以將 php 的值轉換為字元串以永久地儲存它們。這種方法被稱為序列化,可以用函數serialize()來完成該操作。如果在安裝 php 時建立了 WDDX 支持,還可以將 php 的值序列化為 XML 結構。
Oracle的功能:
資料庫的物理存儲結構是由一些多種物理文件組成,主要有數據文件、控制文件、重做日誌文件、歸檔日誌文件、參數文件、口令文件、警告文件等。
控制文件:存儲實例、數據文件及日誌文件等信息的二進制文件。alter system set control_files=『路徑』。V$CONTROLFILE。
數據文件:存儲數據,以.dbf做後綴。一句話:一個表空間對多個數據文件,一個數據文件只對一個表空間。dba_data_files/v$datafile。
日誌文件:即Redo Log Files和Archivelog Files。記錄資料庫修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。
參數文件:記錄基本參數。spfile和pfile。
警告文件:show parameter background_mp_dest---使用共享伺服器連接。
跟蹤文件:show parameter user_mp_dest---使用專用伺服器連接。
⑧ 截取字元串函數顯示類型錯誤
不同的變易語言有不同的截取字元串的函數,錯誤類型也不相同,以下提供的是資料庫字元串截取問題
在varchar(1000)上報錯字元串截斷,於是改為varchar(8000)仍然報錯。
通過對該條語句插入的記錄進行多次修改並測試,發現「記錄超長」錯誤不是某個欄位長度超過了定義的欄位類型長度,而是該條記錄的所有欄位的值加在一起超過了一定長度。
這個「長度」是由資料庫的頁大小決定的,即達夢資料庫中一行記錄的所有欄位的實際長度的和不能超過頁大小的一半
在達夢資料庫中,一行記錄所有欄位長度累加不能大於下表:
解決方法
目前測試過的解決方法如下:
重新創建資料庫,將資料庫的頁大小設為「16K」或以上;
達夢數據頁大小在創建資料庫時設置,設定之後不能更改。
將欄位類型改為TEXT、CLOB、BLOB等大欄位。
在資料庫文件中,TEXT、CLOB、BLOB等大欄位採用和普通欄位不同的、特殊的存儲方式,不佔用該條記錄的頁大小。