表名:Js_Xmwsjl
表中字段有ID,gcsgdw两字段其中gcsgdw是一串格式如下的字符串:*!*[数字]#!#[要进行匹配的字符串]*!*[数字]#!#[要进行匹配的字符串].....例如:一、
*!*1#!#自动消防设施工程设计单位*!*11#!#建筑工程设计单位:JS*!*2#!#自动消防设施工程设计单位*!*11#!#建筑工程设计单位:JS二、
*!*2#!#自动消防设施工程设计11111单位*!*11#!#建筑工程设计单位:JS三、
*!*2#!#自动消防设施工程设计单位*!*11#!#建筑工程设计单位:JS
要求:
从中找出[要进行匹配的字符串]中包含有指定[数字]的行
如从上例中找到匹配[1]的行,即找到第二行:*!*10#!#自动消防设施工程设计11111单位*!*11#!#建筑工程设计单位:JS问SQL如何编写?
解决方案 »
- SQL2008 R2 64位下有没有办法使用'Microsoft.Jet.OLEDB.4.0
- URL传递\UE204之类的部分存到数据库会变成空格或乱码
- 问一个update语句问题
- MySql关于排序的问题,急 啊!求高手解决
- 【!!!!简单的查询问题!!!!】
- SQL server有处理十六进制的现成函数或方法吗?
- 关于图片和视频文件的远程提取问题?
- 用SQL語句怎樣查詢表中編號字段(BH)第三個字母為"A"的記錄?
- How to use SQL-Server data
- 在SqlServer中,如何从表中的一部分数据中对某个字段取最大值?例如:
- 怎样用SQL Server2000的查询分析器访问SQL Server2005?
- 我想写个查询
Replace(gcsgdw,'字符','') like '%字符%'
但当匹配数字时有前面*!*[数字]#!#的干扰!
或者
select * from Js_Xmwsjl where PATINDEX ( '%1%' , gcsgdw)>0
select * from Js_Xmwsjl where PATINDEX ( '%1%' , gcsgdw)>0.
使用 CHARINDEX,模式是字面字符串(不能包含通配符):
select * from Js_Xmwsjl where charindex('1',gcsgdw)>0
select * from Js_Xmwsjl where PATINDEX('%1[^*!*%1%#!#]%', gcsgdw)>0 or PATINDEX('%[^*!*%1%#!#]1%', gcsgdw)>0
这样子应该可以了
select * from Js_Xmwsjl where PATINDEX(%[^*!*%1%#!#]1%[^*!*%1%#!#]%, gcsgdw)>0
select * from Js_Xmwsjl where PATINDEX(%[^*!*%1%#!#]1%[^*!*%1%#!#]%, gcsgdw)>0
-----------------
貌似於LZ給的,邏輯不完全相同喔~~
不妨insert 一條紀錄看看:*!*212#!#同同同同*!*221#!#同同同同*!*221#!#同同同同*!*21#!#同同同同
where patIndex(%[^*!*0-9#!#]1%[^*!*0-9#!#]%,gcsgdw)>0