declare @t varchar(1000)
set @s='"GL","AAA","04/01/2008","001:02:37","0","C","CLOAM","CLOA","C","","A","D","0800-000-410104","0800-000-410100",240340,"000025","M-25-080204-08","090","M","4685.00","4660.00","M-DQ102-066","","","",""'
set @t='"CLOA"'
select LEFT(RIGHT(@S,LEN(@S)-CHARINDEX(@t,@S)+1),len(@t))
-
希望获取其位置的模式。使用 PATINDEX,模式是可以包含通配符的文字字符串。使用 CHARINDEX,模式是不包含通配符的文字字符串。
-
字符串值表达式(通常为列名),SQL Server 2005 在其中搜索指定的模式。
PATINDEX ( '%pattern%' , expression ) |
- pattern
-
一个文字字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。pattern 是字符串数据类型类别的表达式。
-
expression
-
一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。
A. 在 PATINDEX 中使用模式
ensure
在 Document
表的 DocumentSummary
列的某一特定行中的开始位置。USE AdventureWorks; GO SELECT PATINDEX('%ensure%',DocumentSummary) FROM Production.Document WHERE DocumentID = 3; GO |
B. 在 PATINDEX 中使用通配符
en_ure
在 Document
表中 DocumentSummary
列的某一特定行中的开始位置,其中下划线为代表任何字符的通配符。USE AdventureWorks; GO SELECT PATINDEX('%en_ure%', DocumentSummary) FROM Production.Document WHERE DocumentID = 3; GO |
C. 在 PATINDEX 中使用 COLLATE
COLLATE
函数显式指定要搜索的表达式的排序规则。复制代码 | |||
---|---|---|---|
USE tempdb; GO SELECT PATINDEX ( '%ein%', 'Das ist ein Test' COLLATE Latin1_General_BIN) ; GO 二、语法 |