例如表ss有A,B,C三列,
数据如下:
A B C
1 AA AA NULL
2 BB NULL NULL
3 NULL NULL NULL
4 CC BB NULL
5 DD DD DD怎样查出A,B,C三列都不为NULL,并且数据相同的记录?
符合要求的为1,2,5行
数据如下:
A B C
1 AA AA NULL
2 BB NULL NULL
3 NULL NULL NULL
4 CC BB NULL
5 DD DD DD怎样查出A,B,C三列都不为NULL,并且数据相同的记录?
符合要求的为1,2,5行
解决方案 »
- 只查询重复的记录,要怎么做啊?
- 数据库汇总查询
- 大菜鸟的小问题
- 报表服务 不固定列的显示问题
- SQL Server 2005存储过程不同数据库间事务。
- 请问在存储过程中,可以将表名作为参数输入吗?
- left outer join 与 left inner join 在查询性能是有什么区别?
- 高分告急:SQL Server 2005 怎样建库可以让 备份或者其它方式 在 SQL Server 2000 内恢复并使用
- SQL中的连接查询....
- 下面代码第一次会报错,where附近有语法错误,但是点第二次就不会报错了,求帮助
- SQl Server连接问题 使用内网IP连不上数据库,使用计算机用户名能连上数据库
- sql 承办人变更情况统计问题求助
from ss
where A=B and b=c and a is not null
select *
from ss
where A=ISNULL(B,A) and b=ISNULL(c,a) and a is not null
上楼回答,就这些数据而言,sql语句没有问题,
SELECT * FROM ss
WHERE (A=ISNULL(B,A) and A=ISNULL(C,A))
OR (B=ISNULL(A,B) and B=ISNULL(C,B))
OR (C=ISNULL(A,C) and C=ISNULL(B,C))
也不知够不够完善,还有没有更简便或其他的方式
WHERE
ss.A is not null and ss.B is not null and ss.c is not null
and
(
(ss.A=ISNULL(ss.B,ss.A) or ss.A=ISNULL(ss.C,ss.A))
OR (ss.B=ISNULL(ss.A,ss.B) or ss.B=ISNULL(ss.C,ss.B))
OR (ss.C=ISNULL(ss.A,ss.C) or ss.C=ISNULL(ss.B,ss.C))
)