當前位置:首頁 » 編程語言 » sqlserver中截取包含
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver中截取包含

發布時間: 2022-08-31 21:05:41

1. sql server 如何截取一個字元串中第2個'-'後面的字元

sql語句可以截取指定欄位後面的字元串,以sqlserver為例,需要用到charindex函數和substring函數。

如test表中有如下數據,要求截圖str欄位中逗號後邊的內容。

charindex函數說明:

語法:

CHARINDEX ( expression1 , expression2 , [ start_location ] )

參數:

expression1

一個表達式,其中包含要尋找的字元的次序。expression1 是一個短字元數據類型分類的表達式。

expression2

一個表達式,通常是一個用於搜索指定序列的列。expression2 屬於字元串數據類型分類。

start_location

在 expression2 中搜索 expression1 時的起始字元位置。如果沒有給定 start_location,而是一個負數或零,則將從 expression2 的起始位置開始搜索。

substring函數說明:

語法:

substring( expression, start,length)

參數:expression字元串、二進制字元串、文本、圖像、列或包含列的表達式start整數或可以隱式轉換為 int 的表達式,指定子字元串的開始位置length整數或可以隱式轉換為 int 的表達式,指定子字元串的長度

2. sqlserver中怎樣截取欄位[SH:80%][SY:20%]中的80和20

select reverse(substring(reverse('[SH:81%]'),PATINDEX('%[0-9]%',reverse('[SH:80%]')),2))
select reverse(substring(reverse('[SY:20%]'),PATINDEX('%[0-9]%',reverse('[SY:20%]')),2))
reverse是反轉函數
substring是截取函數
這條語句意思是反轉截取從一個數字開始,保留兩位(裡面有幾個數字就填幾,這里是兩位就是2 如果寫成3就會截取「18:」)截取後再反向輸出。這個只適用於數字連在一起的,如果不連在一起需要寫存儲過程。
希望能幫到您!

3. sql server 怎麼截取字元串

substring(要截取的字元串,從第幾位開始,截取幾位) 可以從任意位置截取
left(字元串,截取幾位) 從左側截取
right(字元串,截取幾位)從右側截取幾位

4. 如何截取一段sql中某個字元串之前的內容,在線等

/****** Sql Server中截取字元串的常用方法 ******/--1、LEFT()方法-----函數說明-----1)語法:LEFT(character,integer) --2)介紹:參數1:要截取的字元串,參數2:截取字元個數--3)使用:--返回從字元串左邊開始指定個數的字元--select LEFT('SqlServer_2008',3)--4)返回:Sql--1、RIGHT()方法----- right()函數說明-----1)語法:RIGHT(character,integer) --2)介紹:參數1:要截取的字元串,參數2:截取字元個數--3)使用:--返回從字元串右邊開始指定個數的字元--select LEFT('SqlServer_2008',4)--4)返回:2008--1、SUBSTRING()方法----- substring()函數說明-----1)語法:SUBSTRING(character,start,length) --2)介紹:參數1:要截取的字元串,參數2:開始截取的下標,參數3:截取的字元長度--3)使用:--返回從字元串中間的字元--select SUBSTRING('SqlServer_2008',4,6)--4)返回:Server

5. SQL server列 截取字元串

要是BIZNAME有兩個括弧就不行了
select substring(bizname,charindex('(',bizname),charindex(')',bizname))
from 表名
where charindex('(',bizname)>0

charindex('(',bizname)>0 這個條件是bizname 欄位裡面必須有()

6. sql中截取字元串中間數據

select
substring(欄位名,charindex('-',欄位名,0)+1,len(欄位名)-charindex('-',reverse(欄位名),0)-charindex('-',欄位名,0))
from
表名
substring是截取函數
charindex是算特定符號位置的函數
reverse是把字元串排反序的函數
了解一下這三個函數吧,這句你就應該懂了,我這句剛才試驗了一下,沒問題,環境sqlserver2000
請採納。

7. SQL server如何截取一個欄位中包含的多個Email地址

你在存取數據的時候有沒有用一個符號將它隔下來呢,比如說我在一個欄位中存儲:name,password,[email protected],age,address 將這一段存在資料庫中,現在我想讀它,並找到email地址,我可以想select找到這一段,然後通過spilt方法將它拆成數組,之後在找email
比如你現在將欄位的信息存在
string str="name,password,[email protected],age,address";

string[] sArray=str.Split(new char[]{','});

foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

輸出結果:
name
password
[email protected]
age
address

這樣就可以截取了,不知道對你有沒有幫助

8. sql server2000存儲過程中如何使用函數或者什麼,截取欄位前幾位的內容,例如asp中的mid()函數功能

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

注釋
在字元數中必須指定使用 ntext、char 或 varchar 數據類型的偏移量(start 和 length)。在位元組數中必須指定使用 text、image、binary 或 varbinary 數據類型的偏移量。

說明 兼容級別可能影響返回值。有關兼容級別的更多信息,請參見 sp_dbcmptlevel。

示例
A. 在字元串上使用 SUBSTRING
下例顯示如何只返回字元串的一部分。該查詢在一列中返回 authors 表中的姓氏,在另一列中返回 authors 表中的名字首字母。

USE pubs
SELECT au_lname, SUBSTRING(au_fname, 1, 1)
FROM authors
ORDER BY au_lname

下面是結果集:

au_lname
---------------------------------------- -
Bennet A
Blotchet-Halls R
Carson C
DeFrance M
del Castillo I
...
Yokomoto A

(23 row(s) affected)

下例顯示如何顯示字元串常量 abcdef 中的第二個、第三個和第四個字元。

SELECT x = SUBSTRING('abcdef', 2, 3)

下面是結果集:

x
----------
bcd

(1 row(s) affected)

B. 在 text、ntext 和 image 數據上使用 SUBSTRING
下例顯示如何從 pubs 資料庫的 publishers 表內的每個 text 和 image 數據列中返回前 200 個字元。text 數據以 varchar 的形式返回,image 數據則以 varbinary 的形式返回。

USE pubs
SELECT pub_id, SUBSTRING(logo, 1, 10) AS logo,
SUBSTRING(pr_info, 1, 10) AS pr_info
FROM pub_info
WHERE pub_id = '1756'

下面是結果集:

pub_id logo pr_info
------ ---------------------- ----------
1756 0x474946383961E3002500 This is sa

(1 row(s) affected)

下例顯示 SUBSTRING 在 text 和 ntext 數據上的效果。首先,下例在 pubs 資料庫內創建一個名為 npr_info 的新表。然後,在 npr_info 表中用 pub_info.pr_info 列的前 80 個字元創建 pr_info 列,並添加ü作為首字元。最後,INNER JOIN 檢索所有出版商標識號以及 text 和 ntext 出版商信息列的 SUBSTRING。

IF EXISTS (SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = 'npub_info')
DROP TABLE npub_info
GO
-- Create npub_info table in pubs database. Borrowed from instpubs.sql.
USE pubs
GO
CREATE TABLE npub_info
(
pub_id char(4) NOT NULL
REFERENCES publishers(pub_id)
CONSTRAINT UPKCL_npubinfo PRIMARY KEY CLUSTERED,
pr_info ntext NULL
)

GO

-- Fill the pr_info column in npub_info with international data.
RAISERROR('Now at the inserts to pub_info...',0,1)

GO

INSERT npub_info VALUES('0736', N'üThis is sample text data for New Moon Books, publisher 0736 in the pubs database')
INSERT npub_info values('0877', N'üThis is sample text data for Binnet & Hardley, publisher 0877 in the pubs databa')
INSERT npub_info values('1389', N'üThis is sample text data for Algodata Infosystems, publisher 1389 in the pubs da')
INSERT npub_info values('9952', N'üThis is sample text data for Scootney Books, publisher 9952 in the pubs database')
INSERT npub_info values('1622', N'üThis is sample text data for Five Lakes Publishing, publisher 1622 in the pubs d')
INSERT npub_info values('1756', N'üThis is sample text data for Ramona Publishers, publisher 1756 in the pubs datab')
INSERT npub_info values('9901', N'üThis is sample text data for GGG&G, publisher 9901 in the pubs database. GGG&G i')
INSERT npub_info values('9999', N'üThis is sample text data for Lucerne Publishing, publisher 9999 in the pubs data')
GO
-- Join between npub_info and pub_info on pub_id.
SELECT pr.pub_id, SUBSTRING(pr.pr_info, 1, 35) AS pr_info,
SUBSTRING(npr.pr_info, 1, 35) AS npr_info
FROM pub_info pr INNER JOIN npub_info npr
ON pr.pub_id = npr.pub_id
ORDER BY pr.pub_id ASC

9. sql如何截取字元串中前面的數字

如果提取字元串中的數字,需要自定義函數,以下函數包含截取字元串中的數字、字母、漢字等。

createfunctionfn_myget
(@strasvarchar(max),
@categoryasvarchar(10)='Chinese',
@startasint=1,
@endasint=100000)
returnsvarchar(max)
as
begin
declare@iint=@start
declare@lenstrint=len(@str)
declare@str1varchar(max)
declare@strrevarchar(max)=''
while@i<=@lenstrand@i<=@end
begin
set@str1=substring(@str,@i,1);
--提取漢字
if(@Category='Chinese')
begin
if(len(@str1)!=datalength(@str1))
set@strre=@strre+@str1
end
--提取字母
elseif(@Category='Letters')
begin
if((ascii(@str1)>=65andascii(@str1)<=90orascii(@str1)>=97andascii(@str1)<=122))
set@strre=@strre+@str1
end
--提取數字
elseif(@Category='Digital')
begin
if(ascii(@str1)>=48andascii(@str1)<=57)
set@strre=@strre+@str1
end
else
set@strre='輸入錯誤'
set@i=@i+1
end
return(@strre)
end

測試:

1、截取字元串dsajf23423423中的數字

selectdbo.fn_myget('dsajf23423423','Digital',1,1000)

結果:

自定義函數說明:

函數共需要4個參數:

第一個參數是要截取的字元串;

第二個參數根據要截取的內容不同,分別有「Digital」(截取數字)、「Letters」(截取字母)、「Chinese」(截取中文);

第三個參數代表截取的起始位;

第四個參數代表截取的截取的結束位。