今天我遇到了一些奇怪的东西(或者我厌倦了看到明显的东西)
免责声明:无需继续阅读......是的,我累了,这是胡说八道......
SQL-Server: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"?
执行计划:
一个 Compute Scalar 显示 [Expr1004] = Skalaroperator(' A')另一个显示 [Expr1009] = Skalaroperator(& #39; B&#39)
。Concatenation 将结果定义为 Union1010; Union1011; Union1012 ,而 Union1010 在 [Union1010] =(Expr1004; Expr1009)中定义; [Union1011] =(Id; Id); [Union1012] =(SomeValue; SomeValue)。
答案 0 :(得分:3)
没有数据插入@tblB
。 ID 2已插入@tblA
。
DECLARE @tblB TABLE(Id INT,SomeValue VARCHAR(100));
INSERT INTO @tblA VALUES (2,'blub');