sql的substring
① sql 截取字元串
SUBSTRING
返回字元、binary、text 或 image 表達式的一部分。有關可與該函數一起使用的有效 Microsoft® SQL Server™ 數據類型的更多信息,請參見數據類型。
語法
SUBSTRING ( expression , start , length )
參數
expression
是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start
是一個整數,指定子串的開始位置。
length
是一個整數,指定子串的長度(要返回的字元數或位元組數)。
substring()
——任意位置取子串
left()
right()
——左右兩端取子串
ltrim()
rtrim()
——截斷空格,沒有trim()。
charindex()
patindex()
——查子串在母串中的位置,沒有返回0。區別:patindex支持通配符,charindex不支持。
函數功效:
字元串截取函數,只限單位元組字元使用(對於中文的截取時遇上奇數長度是會出現亂碼,需另行處理),本函數可截取字元串指定范圍內的字元。
應用范圍:
標題、內容截取
函數格式:
string substr ( string string, int start [, int length])
參數1:處理字元串
參數2:截取的起始位置(第一個字元是從0開始)
參數3:截取的字元數量
substr()更多介紹可在PHP官方手冊中查詢(字元串處理函數庫)
舉例:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字元
substr("ABCDEFG", 2); //返回:CDEFG,截取從C開始之後所有字元
substr("ABCDEFG", 0, 3); //返回:ABC,截取從A開始3個字元
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100雖然超出預處理的字元串最長度,但不會影響返回結果,系統按預處理字元串最大數量返回。
substr("ABCDEFG", 0, -3); //返回:EFG,注意參數-3,為負值時表示從尾部開始算起,字元串排列位置不變
例子:
1.截取已知長度的函數
A.截取從字元串左邊開始N個字元
Declare @S1 varchar(100)
Select @S1='http://www.163.com'
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.163.com'
Select SUBSTRING(@S1,8,3)
------------------------------------
顯示結果: www.163.com
以上例子皆是已知截取位置及長度,下面介紹未知位置的例子
2.截取未知位置的函數
A.截取指定字元串後的字元串(例如截取http://後面的字元串)
方法一:
Declare @S1 varchar(100)
Select @S1='http://www.163.com'
Select Substring(@S1,CHARINDEX('www',@S1)+1,Len(@S1))
/*此處也可以這樣寫:Select Substring(@S1,CHARINDEX('//',@S1)+2,Len(@S1))*/
------------------------------------
顯示結果: www.163.com
需要注意:CHARINDEX函數搜索字元串時,不區分大小寫,因此CHARINDEX('www',@S1)也可以寫成CHARINDEX('WWW',@S1)
方法二:(與方法一類似)
Declare @S1 varchar(100)
Select @S1='http://www.163.com'
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.163.com'
Select REPLACE(@S1,'http://','')
------------------------------------
顯示結果: www.163.com
利用字元替換函數REPLACE,將除需要顯示字元串外的字元替換為空
方法四:
Declare @S1 varchar(100)
Select @S1='http://www.163.com'
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獲取需要截取的字元串長度
substr()
例子:
private void DDL_AreaBind()
{
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["strcon"].ConnectionString);
string str = "0000";
cmd = new SqlCommand("select AreaID,Name=ltrim(Name) from Area where right(AreaID,4) ='" + str + "'", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(ds, "area");
this.ddl_area.DataSource = ds.Tables["area"].DefaultView;
this.ddl_area.DataTextField = "Name";
this.ddl_area.DataValueField = "AreaID";
this.ddl_area.DataBind();
cmd = new SqlCommand("select * from Area ", conn);
cmd.CommandType = CommandType.Text;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "city");
this.ddl_city.DataSource = ds.Tables["city"].DefaultView;
this.ddl_city.DataTextField = "Name";
this.ddl_city.DataValueField = "AreaID";
this.ddl_city.DataBind();
}
protected void ddl_area_SelectedIndexChanged(object sender, EventArgs e)
{
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["strcon"].ConnectionString);
this.ddl_city.Enabled = true;
string str1="0000";
cmd = new SqlCommand("select AreaID,Name from Area where substring(AreaID,1,2)='" + this.ddl_area.SelectedValue.Substring(0,2) + "' AND substring(AreaID,3,4) <> '0000' AND substring(AreaID,5,2)='00' ", conn);
cmd.CommandType = CommandType.Text;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "city");
this.ddl_city.DataSource = ds.Tables["city"].DefaultView;
this.ddl_city.DataTextField = "Name";
this.ddl_city.DataValueField = "AreaID";
this.ddl_city.DataBind();
}。
② substring在SQL語句中是什麼意思
截取字元串,如:
select
substring('abcdefg',1,4)
得到的結果是abcd,即從第一位開始,截取4位
③ 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"
④ subString的用法
bstring 有兩種,一種在.net中,一種在SQL中。
SQL中:
substring("abcdefg",4,2)
返回的值為:ef
從字元串"abcdefg"中第4位開始取2位。
是.net中的:
第二個參數長度。
"abcdefg".substring(4,2)
返回的值為:ef
從字元串"abcdefg"中第4位開始取,取到第2位。
"abcdefg".substring(4)
返回:efg
從字元串"abcdefg"中第4位開始取,取到字元串的尾部。
public String substring(int beginIndex),一般用於返回一個新的字元串,它是此字元串的一個子字元串。該子字元串始於指定索引處的字元,一直到此字元串末尾。
CB用法
用途Returns the substring at the specified location within aStringobject.
用法舉例
strVariable.substring(start, end)
"String Literal".substring(start, end)
用法說明:返回一個字串,其中start是起始的index,end是終止的index,返回的字串包含起始index的字元,但是不包含end的字元。這個是string類下的一個method。
以上內容參考:網路-substring
⑤ SQL語句截取字元串中最後的兩個字怎麼做急用。在線等。
substr(str,length(str)-1)
用right函數截取,right('abc',1)取最後一個字元
substring(字元串表達式,開始位置,長度):
從一個指定字元串的指定位置截取制定長度的字元;
第一個參數表示被截取的字元串;
第二個參數表示要在第一個參數中開始截取的位置;
第三個參數表示要截取的長度。
(5)sql的substring擴展閱讀;
SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式又叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
SQL可以獨立完成資料庫生命周期中的全部活動,包括定義關系模式、錄入數據、建立資料庫、査詢、更新、維護、資料庫重構、資料庫安全性控制等一系列操作,這就為資料庫應用系統開發提供了良好的環境,在資料庫投入運行後,還可根據需要隨時逐步修改模式,且不影響資料庫的運行,從而使系統具有良好的可擴充性。
⑥ SQL中SUBSTRING的用法
1、SUBSTRING
返回字元、binary、text 或 image 表達式的一部分。有關可與該函數一起使用的有效 Microsoft® SQL Server™ 數據類型的更多信息,請參見數據類型。
語法
SUBSTRING ( expression , start , length )
參數
expression
是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。
start
是一個整數,指定子串的開始位置。
length
是一個整數,指定子串的長度(要返回的字元數或位元組數)。
說明 由於在 text 數據上使用 SUBSTRING 時 start 和 length 指定位元組數,因此 DBCS 數據(如日本漢字)可能導致在結果的開始或結束位置拆分字元。此行為與 READTEXT 處理 DBCS 的方式一致。然而,由於偶而會出現奇怪的結果,建議對 DBCS 字元使用 ntext 而非 text。
返回類型
如果 expression 是支持的字元數據類型,則返回字元數據。如果 expression 是支持的 binary 數據類型,則返回二進制數據。
返回字元串的類型與給定表達式的類型相同(表中顯示的除外)。
給定的表達式 返回類型
text varchar
image varbinary
ntext nvarchar
2、7890QWER
⑦ 求教SQL語句substring的用法
字元串截取,substring(int beginIndex) 返回一個新的字元串,它是此字元串的一個子字元串。
substring(int beginIndex, int endIndex) 返回一個新字元串,它是此字元串的一個子字元串。
beginIndex - 起始索引(包括)。從0開始
endIndex - 結束索引(不包括)。
"unhappy".substring(2) returns "happy"
"hamburger".substring(4, 8) returns "urge"