declare @str nvarchar(10)
declare @tablename varchar(50)
declare @colname varchar(50)
declare @counts int
declare @sql nvarchar(2000)--以上定义变量
declare cur1 cursor for
select aname tablename,Bname colname from sysobjects a,syscolumns b where aobject_id=bid and atype_desc='USER_TABLE'--定义游标
set @str='海' --设置要查找的字符
Open cur1 --打开游标
Fetch next From cur1 Into @tablename,@colname
While(@@Fetch_Status = 0) --循环
Begin
set @sql=N'select @counts=COUNT() from ' + @tablename + ' where charindex('''+@str+''','+@colname+')>0'
exec sp_executesql @sql,N'@counts int output',@counts output --执行动态sql
if @counts>0 --判断某个表某个字段是否存在特定字符
begin
print @tablename+','+@colname --打印表名及字段名
end
Fetch next From cur1 Into @tablename,@colname
End
Close cur1 --关闭游标
Deallocate cur1 --释放游标
按我以下说的做
use 库名 --库名就是指你导入后起的名,大家一般都叫shifenzheng
create index idx_name on cdsgus(name);--然后耐心等待10-20分钟不等,这期间机器会很卡
这样你的表就有了name列的索引
这时你再
select from cdsgus where name='张三'
速度就会很快,基本秒查
你要是想在身份z列也就是ctfid列
create index idx_ctfid on cdsgus(ctfid);--然后同样需要等待,查询方法同上,不多说了,有问题追问
如果是SQL SERVER 2000,可以用replace函数
select replace('今天',要替换的列名,'') from 表名
附:
Replace:用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
Replace ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
参数:
'string_expression1'
待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。
'string_expression2'
待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。
'string_expression3'
替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
返回类型
以上就是关于跪求sql语句高手,查找整个数据库中的特定字符全部的内容,包括:跪求sql语句高手,查找整个数据库中的特定字符、如何在SQL中搜索数据库中的几个字符(比如名字、身份z号)、怎么在数据库上查询一串中文字符的位置,比如说“今天”,然后把这个字符删除,数据库是sql2000 ,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)