sql-server - UNION 和字面值,奇怪的结果

标签 sql-server union

今天我遇到了一些奇怪的事情(或者我厌倦了看到明显的事情)

免责声明:无需继续阅读...是的,我太累了,这是废话...

SQL 服务器:11.0.6251.0

我回答了this question发现所有行首先都有一个“E”。

简而言之,这是一样的

DECLARE @tblA TABLE(Id INT,SomeValue VARCHAR(100));
INSERT INTO @tblA VALUES (1,'blah');

DECLARE @tblB TABLE(Id INT,SomeValue VARCHAR(100));
INSERT INTO @tblA VALUES (2,'blub');

SELECT 'A' AS SourceFlag, Id, SomeValue
FROM @tblA
UNION ALL
SELECT 'B', Id, SomeValue
FROM @tblB

这是我回来的

SourceFlag  Id  SomeValue
A           1   blah
A           2   blub

为什么第二行没有得到“B”?

执行计划:

enter image description here

一个计算标量显示[Expr1004] = Skalaroperator('A')另一个显示[Expr1009] = Skalaroperator('B') em>.

串联将结果定义为Union1010;联盟1011; Union1012,而Union1010[Union1010] = (Expr1004; Expr1009);中定义。 [Union1011] = (Id;Id); [Union1012] = (SomeValue; SomeValue).

最佳答案

没有数据被插入到@tblB中。 ID 2 已插入到 @tblA 中。

DECLARE @tblB TABLE(Id INT,SomeValue VARCHAR(100));
INSERT INTO @tblA VALUES (2,'blub');

关于sql-server - UNION 和字面值,奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50379494/

相关文章:

sql - 如何四舍五入我的答案

sql-server - 我可以将 SQL Server 与 SQL Server Express 一起安装吗?

sql - 在 SQL UNION 查询中添加列内容

sql - UNION 与 WHERE 子句

php - MySQL在公共(public)查询中分离两个表

MySQL MERGE 存储引擎 - DROP 和 ALTER

MYSQl 联合查询失败

sql-server - 如何使用 OPENJSON 将 json 列表与 SQL Server 中的表连接起来?

c# - 在中间不执行其他命令的情况下执行 2 个 SQL 命令的正确方法

sql-server - SQL Server 2008 Express 无法附加 mdf 文件