2 hallomoto HalloMoto 于 2016.05.12 15:10 提问

SQLServer关于SQL单表查寻合并结果

现有一表.
QA, QC,QD
数据
11, 22, SB
22, 11, SD
33, 44, SH
44, 33, SL

需要把数据拼成两条.
QA, QC,QD, QA2, QC2,QD2
11, 22, SB , 22, 11, SD
33, 44, SH, 44, 33, SL

这个表就通过QA, QC这俩字段识别

6个回答

ljfljfljfabc123
ljfljfljfabc123   2016.05.12 15:16

有没有尝试着having子句和连表查询啊

ljfljfljfabc123
ljfljfljfabc123 回复HalloMoto: 我记得有个关键字是排除重复的啊
一年多之前 回复
HalloMoto
HalloMoto 尝试过了. 因为除了Qa ,Qc关联. 其它字段都不一样. 查询出来的数据的排除不了重复.
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.05.12 15:22

SQL单表外连接
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

HalloMoto
HalloMoto   2016.05.12 15:50

如果用存储过程. 临时表什么的.. 有没有给个提醒.

danielinbiti
danielinbiti   Ds   Rxr 2016.05.12 16:06
 SELECT A.*,B.* FROM 表 A,表 B WHERE a.qa=b.qc and a.qc=b.qa
HalloMoto
HalloMoto 显然会查出4条数据. 测试过了
一年多之前 回复
HalloMoto
HalloMoto   2016.05.12 16:20

还是谢谢上面的两位.

danielinbiti
danielinbiti   Ds   Rxr 2016.05.12 16:58
这是oracle的,适用于记录中只有2条数据是一样的情况,如果有多条数据一致,则需要先distinct,比如
22, 11, SD
22, 11, SD1
有多条,则需要先distinct
利用行号大小进行过滤掉其中一条

 SELECT a.* FROM (
select a.qa qa1,a.qc qc1,a.qd qd1,a.rn arn
,b.qa qa2,b.qc qc2,b.qd qd2,b.rn brn
,rownum rn2 from (
select a.*,rownum rn from 表 a
) a,
(
select a.*,rownum rn from 表 a
) b
where a.qa=b.qc and a.qc=b.qa
) A WHERE arn<=rn2
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!