當前位置:首頁 » 編程語言 » sql獲取字元串

sql獲取字元串

發布時間: 2022-05-25 12:38:38

sql截取字元串!

declare
@s
nvarchar(200),@s0
nvarchar(20),@s1
nvarchar(200),@s2
nvarchar(200)
set
@s0='默認風格'
set
@s='默認風格|#007168|23|紫色風格|#E8D6FE|21|藍色風格|#bad2fe|22'
declare
@r1
int,@r2
int
if
substring(@s,len(@s),1)<>'|'
set
@s=@s+'|'
set
@r1=charindex(@s0,@s)
--文字開始位置
select
@s1=substring(@s,@r1+len(@s0)+1,len(@s))
--文字+「|」以後的子串
set
@r2=@r1+charindex('|',@s1)+len(@s0)
--子串中第一個「|」相對於原串的起始位置
set
@s2=substring(@s1,charindex('|',@s1)+1,len(@s1))
--第一個「|」後的子串
set
@r2=@r2+charindex('|',@s2)
print
substring(@s,1,@r1-1)+substring(@s,@r2+1,len(@s))
你可以把@s0改成任意的什麼「風格」。
把這段代碼修改一下,可以作成一個函數,把@s0和@s作為參數,最後的print作為返回值。

② sql如何獲取字元串中的指定字元

1、創建測試表,

create table test_int(value varchar2(50));

③ SQL 怎麼提取一個模式的字元串

這個通常我的做法有兩種方式(sql server,如果你是oracle或是其他的。。。。。。)

第一種,也是我用的最多的,就是用sql server 自身帶的一些字元串函數去處理,這種方式需要你自己去分析,做法比較靈活,比如書你這個,如果僅以你這3個示例欄位來講,可以將『 A.』替換成『』

updatetable1setcolumn1=REPLACE(column1,'A.','')

然後依次去執行B C ...,但是這么做也是有風險的,需要你了解這一列數據,比如這樣做會把小寫的『 a.』也替換掉,這時可能就需要通過collate Chinese_PRC_CS_AS來限定排序規則等方式來處理了,比較靈活,但是需要結合實際案例來做,只是給你一個思路,自己發揮吧。

第二種,這種只是針對sql server了,別的資料庫不知道可不可以這么解決。

sql server從2005開始,也是基於.NET平台了,所以可以用C#寫一個正則表達式去處理這個問題,如果你對C#和正則表達式了解的話,這個解決起來就十分簡單了,而且貌似沒有解決不了問題了。

我個人通常都用第一種,用C#去處理,用過幾次,在特殊場合有奇效,希望對你有用。

④ sql 怎麼取 字元串的前幾位

sql中,使用LEFT函數即可取到字元串的前幾位。

LEFT(c, number_of_char)用於返回某個被請求的文本域的左側部分,其中c代表被請求的文本域,number_of_cha代表需要取出的字元串位數。如「LEFT("..com", 6)」即可取得字元串""。

(4)sql獲取字元串擴展閱讀:

sql中,常用函數介紹:

1、AVG():返回平均值

2、COUNT():返回行數

3、FIRST():返回第一個記錄的值

4、LAST():返回最後一個記錄的值

5、MAX():返回最大值

6、MIN():返回最小值

7、SUM():返回總和

8、UCASE():將某個欄位轉換為大寫

9、LCASE():將某個欄位轉換為小寫

10、MID():從某個文本欄位提取字元

11、LEN():返回某個文本欄位的長度

12、ROUND():對某個數值欄位進行指定小數位數的四捨五入

13、NOW():返回當前的系統日期和時間

14、FORMAT():格式化某個欄位的顯示方式

15、INSTR():返回在某個文本域中指定字元的數值位置

16、LEFT():返回某個被請求的文本域的左側部分

17、RIGHT():返回某個被請求的文本域的右側部分

⑤ 如何從sql欄位里提取字元串

CHARINDEX函數返回字元或者字元串在另一個字元串中的起始位置。CHARINDEX函數調用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中尋找的字元中,start_location是CHARINDEX函數開始在expression2中找expression1的位置。

⑥ SQL中求截取字元串語句

可以通過substring方法實現。
sql: select substring('123456789',5,2) from al;

解釋:第一個參數表示要截取的字元串,第二個參數是起始位置,第三個參數是,截取的長度。
執行結果:56。

⑦ 如何獲取SQL server資料庫的連接字元串

一:C# 連接SQL資料庫

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

1:Integrated Security參數
當設置Integrated Security為 True 的時候,連接語句前面的 UserID, PW 是不起作用的,即採用windows身份驗證模式。
只有設置為 False 或省略該項的時候,才按照 UserID, PW 來連接。
Integrated Security 還可以設置為:sspi ,相當於 True,建議用這個代替 True。
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=true;
Data Source=myServerAddress;Initial Catalog=myDataBase;;User ID=myUsername;Password=myPasswordIntegrated Security=false;

2:參數Trusted_Connection
Trusted_Connection=true,將使用當前的 Windows 帳戶憑據進行身份驗證
Trusted_Connection=false;將不採用信任連接方式(也即不採用Windows驗證方式),而改由SQL Server 2000驗證方式
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=false;
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

3:Initial Catalog是你要連接的資料庫的名字

4:WINCE連接
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword;

二:可以利用SqlConnectionStringBuilder,這樣不必去記住名稱。
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = @"(local)\SQLExpress";
scsb.IntegratedSecurity = true;
scsb.InitialCatalog = "Northwind";
SqlConnection myConnection = new SqlConnection(scsb.ConnectionString);

三:可以利用屬性中的Setting來自動設置連接字元串
1:在type中選擇 (connection string),
2:在DataSouce中選擇數據源,然後再Server中輸入伺服器名,本地用(local)\SQLExpress
3:選擇登陸驗證方式,本次選Windows驗證(即信任連接Integrated Security=True)
4:選擇資料庫名,確認即可
Data Source=(local)\SQLExpress;Initial Catalog=Northwind;Integrated Security=True
server = .\sqlexpress;integrated security = true;database = northwind

四:SQL2005遠程伺服器連接方法

如何打開sql server 2005 的1433埠:
配置工具->Sql Server Configuration Manager->MSSQLSERVER的協議看看TCP/IP協議是否啟動,如果啟動,右鍵菜單點"屬性" ,在分頁菜單中選"IP地址",把"IP1"和"IP2"中"TCP埠"為1433,"已啟用"改為"是"
配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客戶端協議->TCP/IP選擇TCP/IP右鍵菜單中"屬性",確認"默認埠"是1433,"已啟用"為"是"。

SQL Server 2005 遠程連接配置TCP/IP屬性:
Surface Area Configuration --> Database Engine --> Remote Connections --->Using TCP/IT SQL Server 外圍應用配置器?服務和連接外圍配置?database englie?遠程連接?啟用(遠程連接的TCP/IP和named pipes)
SQL Server Configuration Manager?SQL2005網路配置?啟用TCP/IP和named pipes

其他說明見下: sqlserver2005(Express版),為了便於管理,你還需要去下一個manage管理器:
安裝好manage管理器後,在程序中連接sqlserver2005,下面幾點是要注意的。
1. 開啟sql2005遠程連接功能,開啟辦法如下, 配置工具->sql server外圍應用配置器->服務和連接的外圍應用配置器->打開MSSQLSERVER節點下的Database Engine 節點,先擇"遠程連接",接下建議選擇"同時使用TCP/IP和named pipes",確定後,重啟資料庫服務就可以了.
2.登陸設置改為,Sql server and windows Authentication方式同時選中,具體設置如下: manage管理器->windows Authentication(第一次用windows方式進去),->對象資源管理器中選擇你的數據伺服器--右鍵>屬性>security>Sql server and windows Authentication方式同時選中.
3:設置一個Sql server方式的用戶名和密碼,具體設置如下: manage管理器->windows Authentication>new query>sp_password null,'sa123456','sa' 這樣就設置了一個用戶名為sa ,密碼為:sa123456的用戶,下次在登陸時,可以用Sql server方式, 用戶名為sa ,密碼為:sa123456的用戶進資料庫了.
4: 做完上面三步後,這樣寫連接字元串就可以順利進入資料庫了,
(server=.\sqlexpress;uid=sa;pwd=sa123456;database=master";

五:SQL2000遠程伺服器連接方法

1:看ping 伺服器ip能否ping通。
2:在Dos或命令行下輸入telnet 伺服器IP 埠,看能否連通。 如telnet 202.114.100.100 1433 通常埠值是1433,因為1433是sql server 2000的對於Tcp/IP的默認偵聽埠。如果有問題,通常這一步會出問題。通常的提示是「……無法打開連接,連接失敗"。
如果這一步有問題,應該檢查以下選項。
1) 檢查遠程伺服器是否啟動了sql server 2000服務。如果沒有,則啟動。
2) 檢查伺服器端有沒啟用Tcp/IP協議,因為遠程連接(通過網際網路)需要靠這個協議。檢查方法是,在伺服器上打開 開始菜單-> 程序-> Microsoft SQL Server-> 伺服器網路實用工具,看啟用的協議里是否有tcp/ip協議,如果沒有,則啟用它。
3)檢查伺服器的tcp/ip埠是否配置為1433埠。仍然在伺服器網路實用工具里查看啟用協議裡面的tcp/ip的屬性,確保默認埠為1433,並且隱藏伺服器復選框沒有勾上。 事實上,如果默認埠被修改,也是可以的,但是在客戶端做 telnet測試時,寫伺服器埠號時必須與伺服器配置的埠號保持一致。如果隱藏伺服器復選框被勾選,則意味著客戶端無法通過枚舉伺服器來看到這台伺服器,起到了保護的作用,但不影響連接,但是Tcp/ip協議的默認埠將被隱式修改為2433,在客戶端連接時必須作相應的改變。
4)如果伺服器端操作系統打過sp2補丁,則要對windows防火牆作一定的配置,要對它開放1433埠,通常在測試時可以直接關掉windows防火牆(其他的防火牆也關掉最好)。
5)檢查伺服器是否在1433埠偵聽。如果伺服器沒有在tcp連接的1433埠偵聽,則是連接不上的。檢查方法是在伺服器的dos或命令行下面輸入netstat -a -n 或者是netstat -an,在結果列表裡看是否有類似 tcp 127.0.0.1 1433 listening 的項。如果沒有,則通常需要給sql server 2000打上至少sp3的補丁。其實在伺服器端啟動查詢分析器,輸入 select @@version 執行後可以看到版本號,版本號在8.0.2039以下的都需要打補丁。如果以上都沒問題,這時你再做telnet 伺服器ip 1433 測試,將會看到屏幕一閃之後游標在左上角不停閃動。恭喜你,你馬上可以開始在企業管理器或查詢分析器連接了。

3: 檢查客戶端設置程序-> Microsoft SQL Server -> 客戶端網路使用工具。像在伺服器網路實用工具里一樣,確保客戶端tcp/ip協議啟用,並且默認埠為1433(或其他埠,與伺服器端保持一致就行)。
4:在企業管理器里或查詢那分析器連接測試 企業管理器-> 右鍵SQlserver組-> 新建sqlserver注冊-> 下一步-> 寫入遠程IP-> 下一步-> 選Sqlserver登陸-> 下一步-> 寫入登陸名與密碼(sa,password)-> 下一步-> 下一步-> 完成 查詢分析器-> 文件-> 連接-> 寫入遠程IP-> 寫入登錄名和密碼(sa,password)-> 確定通常建議在查詢分析器里做,因為默認情況下,通過企業管理器注冊另外一台SQL Server的超時設置是4秒,而查詢分析器是15秒。修改默認連接超時的方法: 企業管理器-> 工具-> 選項-> 在彈出的"SQL Server企業管理器屬性"窗口中,點擊"高級"選項卡-> 連接設置-> 在 登錄超時(秒) 後面的框里輸入一個較大的數字查詢分析器-> 工具-> 選項-> 連接-> 在 登錄超時(秒) 後面的框里輸入一個較大的數字通常就可以連通了,如果提示錯誤,則進入下一步。
5:錯誤產生的原因通常是由於SQL Server使用了"僅 Windows"的身份驗證方式,因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接。解決方法如下所示:
1) 在伺服器端使用企業管理器,並且選擇"使用 Windows 身份驗證"連接上 SQL Server。
2) 展開"SQL Server組",滑鼠右鍵點擊SQL Server伺服器的名稱,選擇"屬性",再選擇"安全性" 選項卡。
3)在"身份驗證"下,選擇"SQL Server和 Windows "。
4) 重新啟動SQL Server服務。(在dos或命令行下面net stop mssqlserver停止服務,net start mssqlserver啟動服務,也是一種快捷的方法)。

⑧ SQL語句截取字元串中最後的兩個字怎麼做急用。在線等。

substr(str,length(str)-1)

用right函數截取,right('abc',1)取最後一個字元

substring(字元串表達式,開始位置,長度):

從一個指定字元串的指定位置截取制定長度的字元;

第一個參數表示被截取的字元串;

第二個參數表示要在第一個參數中開始截取的位置;

第三個參數表示要截取的長度。

(8)sql獲取字元串擴展閱讀;

SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式又叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。

SQL可以獨立完成資料庫生命周期中的全部活動,包括定義關系模式、錄入數據、建立資料庫、査詢、更新、維護、資料庫重構、資料庫安全性控制等一系列操作,這就為資料庫應用系統開發提供了良好的環境,在資料庫投入運行後,還可根據需要隨時逐步修改模式,且不影響資料庫的運行,從而使系統具有良好的可擴充性。

⑨ 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();
}。

⑩ sql怎麼取字元串的前幾位

sql語句截取字元串前幾位語句:

select substr(cont_no,1,9) from for_contract

SUBSTRING ( expression , start , length )

expression:是字元串、二進制字元串、text、image、列或包含列的表達式。不要使用包含聚合函數的表達式。

start:是一個整數,指定子串的開始位置。

length:是一個整數,指定子串的長度(要返回的字元數或位元組數)。

eg:select id from users id的值是001.002$

select substring(ID,charindex('.',ID)+1,(charindex('$',ID)-charindex('.',ID)-1)) as idx

熱點內容
光遇安卓服周年傘在哪裡領取 發布:2025-02-13 02:22:18 瀏覽:673
寫mv腳本軟體 發布:2025-02-13 02:21:56 瀏覽:695
超內核源碼 發布:2025-02-13 02:12:54 瀏覽:443
趣粉腳本 發布:2025-02-13 02:11:23 瀏覽:951
壓縮的茶葉怎麼弄開 發布:2025-02-13 02:11:16 瀏覽:738
n1ftp伺服器 發布:2025-02-13 02:10:39 瀏覽:347
沒有卡沒有密碼怎麼辦啊 發布:2025-02-13 01:51:53 瀏覽:460
linux2個ftp伺服器 發布:2025-02-13 01:44:31 瀏覽:14
戴爾r730網路配置後如何保存 發布:2025-02-13 01:38:27 瀏覽:344
php用什麼編譯 發布:2025-02-13 01:37:12 瀏覽:703