判断字符串中是否有子串
判断字符串中是否有子串,另外必须是第一个位置开始
------解决方案--------------------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