自己总结的不定条件SQL查询语句的写法
我说的不定条件是指查询条件的个数不定。有时一个,有时两个,有时好几个。
首先我发现
select * from A where a='kkk' 与
select * from A where a like 'kkk'
其实效果是一样,只要 like 后面的字符串不包含通配符。这样一来就很方便了。譬如有
select * from A where a='KKK' and b='LLL'
有两个查询条件,但有时候又只需要第一个或者第二个条件,又不想写好几条SQL语句。这时就可以先把SQL参数化
select * from A where
a like @a
and
b like @b
把等于号替换成 like
然后给参数a赋值,有两种选择, 要么是%,要么是不包含通配符的任何字符串。参数b的赋值同理。
假如给参数a赋值为%,参数b赋值为字符串'LLL',那么实际SQL语句为
select * from A where a like '%' and b like 'LLL' 相当于
select * from A where b='LLL',只使用了一个条件。
这个只适用于包含字符串的参数的情况。至于非字符串的情况,我还没有考虑到。在VB2008中可以这么用。别的没试过。
也许有人早已知道,或许我说的不对,欢迎指教。
相关文档:
曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm:ss,而我们查询时是通过yyyy-mm-dd来进行的,即查询某一天的所有会议信息,这样如果通过select * from Meeting where PublishTime=@PublishTime (参数@PublishTime为y ......
在SQL中可以使用Like进行模糊查询,例如 f_stuname like 'a%' 查询f_stuname列以a开头的记录。
当我们在应用中使用
f_stuname
like '%a%' 时,如果
f_stuname有索引的话,这个索引也是不执行的
在SQL优化中这个写法就是一个不好的SQL了。
那么如何来替换这个呢,这一个就用到了Oracle的instr函数了
我们可以这样 ......
今天我在SQL Server 2005中用脚本创建一张表,查资料发现有的脚本中字段有加[]中符号,我问了冬季,得知是这回事,用[]的字段名,即便是sql关键字也可以作为字段名,不会报错。
SQL Server里的表中添加一个字段,如:time系统会自动加一对方括号即:[time] ......
SQL Server7.0数据库:数据仓库、数据复制、分布式数据库应用程序、Intelnet和Intranet应用和管理工具;
安装检测:1、net start mssqlsever;
2、osql /usa /p ;
......
很多时候我们可能都需要这么一个简繁互相转换的SQL函数,今天在网上找到的,收集下来。
以后有了它就省事多啦。不用再写程序取出来转换后再更新数据库了。
SQL简体繁体转换函数代码:
--生成码表
if exists (select * from dbo.sysobjects where id = object_id(N'[codetable]') and OBJECTPROPERTY(id, N'IsUserTable' ......