怎么样写才能得到sqlserver中的结果
解决方案 »
- [讨论] ORACLE 快照同步不适用于更新频率高的情况
- 如何用jdbc调用oralce plsql 匿名块
- block问题
- 这两个sql 语句效果是不是一样的?
- Oracle中创建用户有什么要求吗?
- 对表中数据分组统计和,然后需要把符合要求记录的"所有"字段信息显示出来
- C#+Oracle的PROCEDURE传递BLOB数组的问题,传递字符串数组本人会。
- oracle (大数据)内连接速度优化
- oracel 高级复制部件的安装
- WINDOWS 2008 搭建ORACLE 时报错,-配置网络基础结构配置失败-插件的执行方法失败
- 急问,表或视图不存在
- Oracle9i新手提问,各位老大,有事没事来看看,谢谢!
可以用 nvl(b,'') is null来判断
这是一个查询语句,其中a,b的查询值为ls_a,ls_b
如果数据库中存在一条b=NULL的记录,我现在在oracle下就搜索不到select count(*) from table where a=:ls_a and nvl(b,'')=:ls_b;
1、'' 和null表示一样的意思。
2、null 与null无法进行相等比较。
所以nvl(b,'')=''条件为false,则count(*)=0。
bobo1314(bobo) 同学写的是对的。
bobo1314(bobo) 同学写的是对的。但,我想知道我这个问题该怎么解决
ls_a varchar2(20);
ls_b varchar2(20);
begin
给ls_a,ls_b赋值;
if ls_b is null then
select count(*) from table where a=ls_a and b is null;
else
select count(*) from table where a=ls_a and b=ls_b;
end if;
end;
我只不过是想,sqlserver能实现的功能,
在ORACLE中怎么实现
ls_b<>null,可能ls_b='',也可能为一长度不为0的字符串字段b则为3种情况null , '' , 长度不为0的字符串
当然可以
select count(*) from table where a=ls_a and nvl(b,'一个特殊的字符串')=ls_b;
select count(*) from table where a=ls_a and nvl(b,'12345678900987654321')=ls_b
要求:当 LS_B=''时,字段b中的内容可以为'',也可以为nullsqlserver:
select count(*) from table where a='user' and isnull(b,'')='';
select count(*) from table where a='user' and isnull(b,'null')<>'null';