在SQL Server 2005所有表中搜索某个指定列的方法_mssql2005

来源:脚本之家  责任编辑:小易  

有时候我们只知道列的名字,但是不知道这列数据到底在哪个表里面,那么可以用下面的办法把含有这列数据的表查找出来。
复制代码 代码如下:
Select O.name objectName, C.name ColumnName from sys.columns C inner join sys.objects O ON C.object_id=O.object_id where C.name like '%ColumnName%'order by O.name, C.name

 
在你实际试用中,把ColumnName换成你要查的列的名字就可以了。

字符串在某字段里时,如何写搜索的SQL语句

问题描述:

经常遇到这种问题,我们搜索的条件是某字符串包含在某字段,如果是某字段包含在某字符串,我们知道可以用in,

如sql="select * form tb where tb.name in(" & names & " )”  

注释:name是表tb的字段,name是获得的字符串,该句查询字段name在给的字符串names里的所有集合)

这种方法自然不必多说,但我们通常遇到的问题是“反着来”,即  "name"字符串 在 tb.name表字段里,如,表tb的name字段值为:张三,李四,王五,赵六

而我们要查询的name=张三,这就要判断当表的name字段包含查询条件,也就是有“张三”时,即为符合查询

解决方法:

1、最先想到的当然是like查询(并非终极解决方案,终极方法继续往下看)

如sql="select * form tb where tb.name  like  '%" & 张三 & "%' ” 

解释一下,这个语句,能查询到所有表的name字段里有”张三“的集合,可是,假设有人的名字叫”秦张三八“,他的名字不管爹妈怎么取的,总之也有”张三“两个字,这样很显然也符合查询情况,那么他自然也会被查询出来,而我们只要”张三“,不要”秦张三八“,看下一步

2、试想一下,如果字段里的值不是“张三,李四,王五,赵六”,而是“,张三,李四,王五,赵六,”

发现什么了?

是的,字符串前后多了个逗号,这就有用了,因为逗号可以作为限制条件,如果“秦张三八”此时也在这个字段里,他的前后也有逗号,这样按逗号来控制查询,就精确到位了

好了,改写查询成:sql="select * form tb where tb.name  like  '%," & 张三 & ",%' ”

到此,原理和解决方法就已经全部说完了,但是,你可能还会遇到以下问题,继续看第三步。

3、有时类似这种带逗号的字段都是我们在保存的时候勾选了多选check得来的值,这时写入数据库的时候,会自动在不同的check值后加上逗号,

比如,请选择你的兴趣爱好,你可能会勾选“看书(value=1)”,“听歌(value=21)”,“爬山(value=13)”

此时得到的值就是xingquaihao="1, 21, 13",将这个字段保存,在数据库里也就是这种格式,但是此时如果直接按照上面的查询方式来查询的话,

直接用:sql="select * form tb where xingquaihao  like  '%" & 1 & "%' ”   将得到所有含1的,就算是21、13中的1,也会被查出来

将字段前后加上逗号,变成“,1, 21, 13,”的时候,如果我们查21或者13,改成:sql="select * form tb where xingquaihao  like  '%," & 21 & ",%' ” 结果是什么都查不出来

为什么明明有值,却查不出来呢?

因为自动勾选,然后保存的字段中间有空格,比如“1, 21, 13”,1的后面是一个逗号,逗号后面是一个空格,然后才是21

解决方法很简单了,在勾选完后,入库前把空格去掉,

xingquaihao="1, 21, 13"

xingquaihao=replace(xingquaihao," ","") '将空格删除

如此得到的就是紧凑型的值了,再按照上面的方法查询,搞定!

您可能感兴趣的文章:SQLServer地址搜索性能优化在SQL Server中实现最短路径搜索的解决方法sqlserver中在指定数据库的所有表的所有列中搜索给定的值SQL Server 全文搜索功能介绍

  • 本文相关:
  • sqlserver job运行成功或失败时发送电子邮件通知的图文教程
  • sql2005clr函数扩展-繁简转换的实现代码
  • sql server 2005 镜像构建手册(sql2005数据库同步镜像方案)
  • sql2005 批量更新问题的解决方法
  • mssql 大量数据时,建立索引或添加字段后保存更改提示超时的解决方法
  • 安装sql2005时出现的版本变更检查skuupgrade=1问题的解决方法
  • sql server 数据库安全管理介绍
  • sql2005 存储过程解密方法
  • 在登录触发器错误情况下连接sql server的方法
  • sqlserver2005 没有服务器名称的两种解决方法
  • SQL SERVER200
  • 什么是Net+ sql server200x??ASP呢??
  • 在 myeclipse9.0中DB Browser怎么样连接SQL server200
  • SQL Server 200中数据字典表具体说什么,意思是什么?Itemtype...
  • 安装SQL Server 200时错误:
  • win7为何安装不了sql server 200
  • SQL Server 2008怎样编辑200行以上的数据
  • 咋在XP系统上 安装SQL server200
  • sqlserver200版本数据库问题 我想修改字段数据库类型。
  • SQL SERVER200中怎么在同一表中将一字段的值自动等于其...
  • SQL SERVER200中怎么在同一表中将一字段的值自动等于其...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mssql2005sqlserver地址搜索性能优化在sql server中实现最短路径搜索的解决方法sqlserver中在指定数据库的所有表的所有列中搜索给定的值sql server 全文搜索功能介绍sqlserver job运行成功或失败时发送电子邮件通知的图文教程sql2005clr函数扩展-繁简转换的实现代码sql server 2005 镜像构建手册(sql2005数据库同步镜像方案)sql2005 批量更新问题的解决方法mssql 大量数据时,建立索引或添加字段后保存更改提示超时的解决方法安装sql2005时出现的版本变更检查skuupgrade=1问题的解决方法sql server 数据库安全管理介绍sql2005 存储过程解密方法在登录触发器错误情况下连接sql server的方法sqlserver2005 没有服务器名称的两种解决方法sqlserver2005 安装图解教程以及sql 2005超详细的sql2005图解安装全过程sql server 数据库清除日志的方法sql server 连接到服务器 错误233的解决办法sql server安装出错,安装程序配置服务器失败的解决方sql server 2005“备份集中的数据库备份与现有的sqlserver2005安装提示服务无法启动原因分析及解决sql server 2005安装时asp.net版本注册要sqlserver2005 没有服务器名称的两种解决方法win7 32/64位系统下安装sql2005和sp3补丁安更改sql server 2005数据库中tempdb位置的方法sqlserver2005使用row_number() over分页的实现方sqlserver2005 安装图解教程以及sql 2005 sp3补丁安装sql server 备份还原后出现 受限制用户 问题sql2005附加数据库操作步骤(sql2005还原数据库)sql server 2005 中做全文检索的方法分享sql server 使用 set fmtonly on 获得表的元数据sql2005 本地计算机上的sql server服务启动后又停止了解决方法在登录触发器错误情况下连接sql server的方法如何在sql server 2005存储过程中,使用循环语句
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved