数据库where查询
Ⅰ sql where 语句查询
对于你举例的这个,直接用isnull(语文,''),空(NULL)为''。
where 辅助科目语文 like '%'+isnull(语文,'')+'%'这样就行。
这样如果语文是空的话,则拼起来的结果就是'%%',like '%%'可以起到1=1一样的效果了。
另外也可以使用CASE WHEN
where 辅助科目语文 like (case when isnull(语文,'') = '' then '%' else '%'+语文+'%' end)
case when 就可以实现你的if功能。
有那么麻烦么?使用 columnname like '%' + ISNULL(:参数,'') + '%'
这个肯定够使用了。只不过你的where条件要把所有的条件都拼进去。
isnull是空则为一个值的语法,不过是SQLSERVER的。ORACLE用NVL,MYSQL应该是IFNULL。如果是空,给两个单引号,然后和百分号一拼接,肯定是百分号,那么使用like,当然是字符型才可以,空的话条件就是恒等。
Ⅱ sql 查询where语句怎么写
select * from A where id=1
* 表示查询的字段,*是所有
where 后面是条件,这里条件表示在表A里面id对应为1的数据
Ⅲ SQL查询语句where参数
楼主这复样写是没有用制的
如若你想把字段名或者表名作参数可以这样样子
写一个存储过程 如下
ceeate proc test
@A varchar(20),@B varhcar(20)
as
declare @sql varchar(4000)
begin
set @sql='select * from info where '+ @A+'='+@B
exec @sql
end
这样才可以,具体什么原因很复杂,涉及到数据库的具体编译策略,如果楼主有兴趣可以,看看数据库的设计原理
Ⅳ sql语句where条件查询
必须指定限定查询。
格式:
[SELECT] [{DISTINCT}] [* |具体的列别名FROM表名称] [{WHERE条件(s)}]
例:查询出工资大5000的雇员的信息。
数学计算中,工资大于5000:sal > 5000
l SELECT * FROM emp WHERE sal > 4000 ;
输出如下:
Ⅳ sql查询中where后面可以使用变量吗
sql查询中where后面可以使用变量,使用方法为;
1、select 字段名 from 数据库表 where 字段=条件值;如下图所示。
Ⅵ SQL where 查询
把Name 改成 isnull(Name,'')就可以了
Ⅶ SQL语句where多条件查询怎么写
select*fromtablewherea=borb=corc=dandid>100
用or 和 and,
上面的意思是找到TABLE表里,条件为:A=B或者B=C或者C=D,而且这条数据ID>100的。。。
注意不同数据库用法不同,不过比较类似MSSQL MYSQL,只是一些语法上的不一样。
条件用
OR,或者,只要满足一个条件,
AND条件都满足,
看你自己需求来写。
Ⅷ SQL语句where多条件查询怎么写
工具/材料:以Management Studio为例。
1、首先在桌面上,点击“Management Studio”图标。
Ⅸ mysql如何实现跨数据库查询并按where子
1、where型子查询
(把内层查询结果当作外层查询的比较条件)
#不用order by 来查询最新的商品
select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);
#取出每个栏目下最新的产品(goods_id唯一)
select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id);
2、from型子查询
(把内层的查询结果供外层再次查询)
#用子查询查出挂科两门及以上的同学的平均成绩
思路:
#先查出哪些同学挂科两门以上
select name,count(*) as gk from stu where score < 60 having gk >=2;
#以上查询结果,我们只要名字就可以了,所以再取一次名字
select name from (select name,count(*) as gk from stu having gk >=2) as t;
#找出这些同学了,那么再计算他们的平均分
select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk >=2) as t) group by name;
3、exists型子查询
(把外层查询结果拿到内层,看内层的查询是否成立)
#查询哪些栏目下有商品,栏目表category,商品表goods
select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id);