2016-09-18 74 views
0

我正在使用以下查询从2个表中抽取一些信息,以使用“Category”值填充我网站上的下拉字段。TSQL union all - error

我收到以下错误消息。

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

这是我的查询:

select 'Choose a Category', 'All' 

Union All 

select distinct CategoryName 
from BND_Listing 
inner join BND_listingCategories on BND_Listing.CatID = BND_ListingCategories.CatID 

我怀疑它是与内加入?

任何输入赞赏!

+2

您试图工会查询,返回2列(' '选择一个类别',“All'')与另一个人比只返回一个('CategoryName') 。 – sstan

回答

2
select 'Choose a Category' as CategoryName 
Union All 
select 'All' as CategoryName 
Union All 
select distinct CategoryName from BND_Listing 
inner join BND_listingCategories 
on BND_Listing.CatID=BND_ListingCategories.CatID 

select 'Choose a Category' as CategoryName, 'All' as Value 
Union All 
select distinct CategoryName, CategoryName as Value from BND_Listing 
inner join BND_listingCategories 
on BND_Listing.CatID=BND_ListingCategories.CatID 
+0

感谢Markus的快速回复! – UserSN

+0

如果我想将文本显示为“选择类别”,但值“全部”,该怎么办? – UserSN

+0

然后,您还必须为下面的选择添加一个值。所有与“Union All”组合的查询必须具有相同数量的列和数据类型。 –