添加常量字符串字段时SQL失败

问题描述 投票:0回答:3

当我将一个常量字符串添加为字段时,我收到一条错误消息

这是错误消息:

我想在SQL视图中将表名添加为我的行的列,我收到一条错误消息:

执行的SQL语句:

[...]

错误来源:.Net SQL客户端数据提供程序

错误消息:使用UNION,INTERSECT或EXCEPT运算符组合的所有查询必须具有相同数量的表达式及其目标列表。

SELECT        Location, ClientID, Type_C, Todays_Date, '1100_vAC' as S_Table

FROM            dbo.1100_vAC

UNION ALL

SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp, '1100_vAD' as S_Table
FROM            dbo.1100_vAD
UNION ALL
SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp,  '1101_AC' as S_Table
FROM            dbo.1101_AC
UNION ALL
SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp, '1101_AA' as S_Table
FROM            dbo.1101_AA
UNION ALL
SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp, '1102_AC' as S_Table
FROM            dbo.1102_AC;

我想看看每一行的源表。

sql string field
3个回答
0
投票

您应该更正您的代码(删除重复的time_stamp)

SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp, '1100_vAC' as S_Table

FROM            dbo.1100_vAC

UNION ALL

SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp,  '1100_vAD' as S_Table
FROM            dbo.1100_vAD
UNION ALL
SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp,  '1101_AC' as S_Table
FROM            dbo.1101_AC
UNION ALL
SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp,  '1101_AA' as S_Table
FROM            dbo.1101_AA
UNION ALL
SELECT        Location, ClientID, Type_C, Todays_Date, Time_Stamp,  '1102_AC' as S_Table
FROM            dbo.1102_AC;

0
投票

union,intersect和except需要相同数量的列(最好是排序)。如果您在除第一个选项之外的所有选择上复制TIMESTAMP,则会出错。


0
投票

第一行包含6列,其余包含7列,因为在其余行中添加了两次额外的时间戳列。

Union / union所有联合数据并不是它加入列。因此,您需要保留相同类型的列,以确保整个数据同步且一致

© www.soinside.com 2019 - 2024. All rights reserved.