欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

100分求一句db2的sql,该如何处理

更新时间: 2014-01-05 02:23:31 责任编辑: Author_N1

 

100分求一句DB2的sql
Table如下:
FILE_NAME      STATUS
FTP_000006      E
FTP_000006      S
FTP_000006      S
FTP_000007      S
FTP_000007      S
FTP_000007      S
FTP_000008      S
FTP_000008      S
FTP_000008      S

需要select出status全是‘S’的文件名(注意,“status全是S”是重点:比如FTP_000006就不符合,因为它有一个STATUS是E,而不是S)。
此sql搜索出来的结果集应该如下:

FTP_000007
FTP_000008
--参考方法--

select DISTINCT FILE_NAME from ttA a where not exists(select 1 from ttA where a.FILE_NAME=FILE_NAME and STATUS<>'S')
--参考方法--
select distinct FILE_NAME from Table
where FILE_NAME not in (
    select FILE_NAME from Table where STATUS <> 'S'
)

--参考方法--
select distinct FILE_NAME from Table A
where not exists (
    select 1 from Table B where A.FILE_NAME = B.FILE_NAME and B.STATUS <> 'S'
)

--参考方法--
如果你的STATUS 字段有null的话,需要这样写:
select distinct FILE_NAME from Table
where FILE_NAME not in (
    select FILE_NAME from Table where STATUS <> 'S' or STATUS is null
)

select distinct FILE_NAME from Table A
where not exists (
    select 1 from Table B where A.FILE_NAME = B.FILE_NAME and B.STATUS <> 'S' or B.STATUS is null
)

--参考方法--
OR
SELECT DISTINCT B.FILE_NAME from tta B LEFT JOIN (
SELECT FILE_NAME from tta where STATUS<>'S' ) C ON B.FILE_NAME=C.FILE_NAME WHERE C.FILE_NAME IS NULL
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:23:31
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9251/
本文WWW.DOC100.NET DOC100.NET版权所有。