sql - 如何在 SQL 中将四列值附加到两列中
问题描述
我想将四列值附加到两列值。请对此请求提供帮助。我尝试了以下查询,但无法实现。
select * from
(SELECT DISTINCT id,'A' as Name FROM emp1) tbl1
FUll OUTER JOIN
(SELECT DISTINCT id,'B' as Name FROM emp2
UNION ALL
SELECT DISTINCT id,'B' as Name FROM emp3) tbl2
on tbl1.id = tbl2.id where tbl1.id IS NULL or tbl2.id IS NULL;
查询输出:
预期输出:
解决方案
似乎使用VALUES
表结构来反透视数据可以在这里工作:
SELECT V.ID,
V.Name
FROM dbo.YourTable YT
CROSS APPLY (VALUES(YT.ID1, YT.Name1), --Your table had 2 ID & Name columns, which isn't allowed.
(YT.ID2, YT.Name2))V(ID,Name) --I therefore assumed they were suffixed with 1 and 2.
WHERE V.ID != 'None';
虽然基于您的尝试,而不是示例数据,但您不只是在 a UNION
orUNION ALL
查询之后吗?
SELECT id, 'A'
FROM emp1
UNION ALL
SELECT id, 'B'
FROM emp2
UNION ALL
SELECT id, 'C'
FROM emp3;
当然,如果你有 3 个这样的 emp 表,你也确实存在设计缺陷。
推荐阅读
- python - 尝试在 PyQt QLabel 上绘制矩形时图像未显示
- xaml - 如何获取 UWP XAML 页面以检测何时按下 % 符号
- java - 关于过滤 Jsoup 元素的 IntelliJ 警告
- c - GStreamer:通过UDP将字符串发送到另一个管道
- r - 如何在 R 上将患病人群细分为性别 - 微生物组
- c# - 如何在 C# 中为 SDL2 加载 DLL?(DLLImport 的问题)
- reactjs - Axios如何在componentDidMount中异步获取数据
- python - WinError 2:系统在Python中找不到FluidSynth指定的文件?
- sql-server - mdf 无法打开,因为版本是 661,我的数据库支持 665
- python - Django 通道错误:没有消息类型 websocket.receive 的处理程序