ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 两列值DA跟DB,查询DB同时包含A和C的DA列

两列值DA跟DB,查询DB同时包含A和C的DA列

原创 Linux操作系统 作者:zhangwei7717951 时间:2013-02-02 00:07:30 0 删除 编辑

[i=s] 本帖最后由 zhangwei7717951 于 2013-2-2 00:06 编辑

今天群里有个好友,发出需求是,咋一看,还以为是要求查询包含DB有A和C的列.想都没想,就抛出语句,SELECT * FROM TABLE WHERE DB IN('A','C'),代码一抛出,立即遭到群友的置疑,重新审题后,才发现没注意看同时2个字..

创建测试表
CREATE TABLE [dbo].[DC](
        [DA] [nchar](100) NULL,
        [DB] [nchar](100) NULL
)


INSERT INTO DC(DA,DB) VALUES('1','A')
INSERT INTO DC(DA,DB) VALUES('1','S')
INSERT INTO DC(DA,DB) VALUES('1','D')
INSERT INTO DC(DA,DB) VALUES('2','A')
INSERT INTO DC(DA,DB) VALUES('2','B')
INSERT INTO DC(DA,DB) VALUES('2','C')
INSERT INTO DC(DA,DB) VALUES('3','A')
INSERT INTO DC(DA,DB) VALUES('3','F')
INSERT INTO DC(DA,DB) VALUES('3','A')


SELECT * FROM DC
结果为:


这时候我们看到结果中只有DA为2的才满足条件,那么如何查询DB即包含A又包含C的DA列呢?想了后,思路为这样,写两个固定的查询,将DB包含A的查询出来,再将DB包含C的查询出来,然后连接查询,相信结果就会出来,手工尝试下.

DB包含A的语句为SELECT * FROM DC WHERE DB='A'
DB包含C的语句为SELECT * FROM DC WHERE DB='C'


组合连接查询
SELECT A.DA FROM
(SELECT * FROM DC WHERE DB='A') A
INNER JOIN (SELECT * FROM DC WHERE DB='C') C ON A.DA=C.DA


在来看结果

嘿嘿,得出想要的,看题要先审题,小学语文老师教的总是很有用.
希望有大师也能给更好的代码和代码思路,共同学习MSSQL,也欢迎老师和各位同学加入MSSQL千人群(250942633)指导大家,共同学习进步.



1.jpg

2.jpg

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26935947/viewspace-753791/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-07-25

  • 博文量
    3
  • 访问量
    1450