- SQL code
--我要查询出【库存表】里面的【库存代码】字段为【abc】临近的数据信息,每页只显示100条;方便查询--···我表里有1W条数据--···比如说 abcdefgh 我要查D临近的,2到3位就可以了;包括D在其中!--显示结果如下:--···第一种显示结果:bcDef--···第二种显示结果:abcDefg
------解决方案--------------------
不懂 等高僧解决
------解决方案--------------------
照你的意思,直接用like就可以实现了
------解决方案--------------------
- SQL code
DECLARE @t VARCHAR(30)SET @t='abcdefgh'SELECT SUBSTRING(@t,CHARINDEX('d',@t)-2,CHARINDEX('d',@t)+1)SELECT SUBSTRING(@t,CHARINDEX('d',@t)-3,CHARINDEX('d',@t)+3)
------解决方案--------------------
看了叶子的回答才知道什么意思。
------解决方案--------------------
- SQL code
--> 测试数据:[tb]IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]GO CREATE TABLE [tb]([name] VARCHAR(50))INSERT [tb]SELECT 'abcaaaa' UNION ALLSELECT 'abcdefghzzz' UNION ALLSELECT 'xxooabcdfghfhfgh' UNION ALLSELECT 'xxacdfg' UNION ALLSELECT 'ooabcd'--------------开始查询--------------------------DECLARE @str VARCHAR(50),@rand INT SET @str='abcd'SET @rand=3 SELECT NAME,第一种=SUBSTRING(NAME,CHARINDEX(@str,name)+1,CASE WHEN LEN(NAME)-CHARINDEX(@str,name)[email protected]<=LEN(@str) THEN LEN(@str) ELSE LEN(NAME)-CHARINDEX(@str,name)[email protected] END), 第二种=SUBSTRING(NAME,CHARINDEX(@str,name),CASE WHEN LEN(NAME)-CHARINDEX(@str,name)[email protected]<=LEN(@str) THEN LEN(@str) ELSE LEN(NAME)-CHARINDEX(@str,name)[email protected] END)FROM [tb] WHERE CHARINDEX(@str,name)>0----------------结果----------------------------/* NAME 第一种 第二种-------------------------------------------------- -------------------------------------------------- --------------------------------------------------abcdefghzzz bcdefgh abcdefgxxooabcdfghfhfgh bcdfghfh abcdfghfooabcd bcd abcd(3 行受影响)*/
------解决方案--------------------
charindex判断长度
substring截取
------解决方案--------------------
like %_D_%
like %__D__%
------解决方案--------------------
------解决方案--------------------
- SQL code
like '__' + '某字符' + '__' -->此处2条下划线(_)like '___' + '某字符' + '___' -->此处3条下划线(_)
------解决方案--------------------
- SQL code
like 在语句中很耗性能,建议尽量少的适用like. 用嫂子的不错。[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img]
------解决方案--------------------