读书人

判断字符串中是否有子串解决方法

发布时间: 2012-01-09 21:05:41 作者: rapoo

判断字符串中是否有子串
判断字符串中是否有子串,另外必须是第一个位置开始



[解决办法]
CHARINDEX( '12 ', '123 ')=1
[解决办法]
charindex()
[解决办法]
charindex( '子串 ', '字符串 ') = 1
[解决办法]
判断字符串中是否有子串,另外必须是第一个位置开始

1 where field like 'abc% '
2 where left(field,3)= 'abc '
3 where CHARINDEX( 'abc ',field)=1

[解决办法]
patindex
[解决办法]
CREATE TABLE T
(
NAME VARCHAR(100)
)

INSERT INTO T
SELECT '123456 ' UNION ALL
SELECT '7891256 ' UNION ALL
SELECT '41256 ' UNION ALL
SELECT '4785 '

SELECT * FROM T
WHERE PATINDEX( '%12% ',NAME)> =1


NAME
----------------------------------------------------------------
123456
7891256
41256

(3 row(s) affected)


[解决办法]
PATINDEX like 两者效率谁高啊
[解决办法]
charindex() 和 patindex()也不知哪 效率高

但有一,charindex()不能用於text型
而 patindex()可以的
所以呢,是使用patindex()比好
[解决办法]
100分,我也来
patindex( '%12% ', '123 ')

[解决办法]
CHARINDEX ( expression1 , expression2 [ , start_location ] )

参数
expression1

一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。

start_location

在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。

[解决办法]
charindex( '子串 ', '字符串 ') = 1

读书人网 >SQL Server

热点推荐