集团军改师后机关编制:sql语句求助

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 13:12:26
2个表,分别叫AA表和BB表。结构一样,都有code和name两个字段。现要求选出AA表和BB表的所有code和name。同一code只有AA表有,就显示AA表的name;同一code只有BB表有,就显示BB表的name;如果同时出现在AA表和BB表中,则显示AA表的name。
例如:
---------------------------------
AA表 BB表
---------------------------------
code name code name
---------------------------------
001 NameA1 002 NameB2
002 NameA2 003 NameB3
---------------------------------

要求结果为如下:
----------
code name
----------
001 NameA1
002 NameA2
003 NameB3
----------

sql server 2000 以下两种方式可以实现:
法一、使用 IN :
SELECT code, name
FROM AA
UNION
SELECT code, name
FROM BB
WHERE code NOT IN
(SELECT code
FROM aa)

法二、使用 exists :

SELECT code, name
FROM AA
UNION
SELECT code, name
FROM BB
WHERE NOT EXISTS
(SELECT code
FROM aa
WHERE aa.code = bb.code)