我正在从表中检索值,而这反过来又使用SQL关键字'EXCEPT'
与另一个表中的值进行比较我的查询类似于以下
SELECT DISTINCT TDC_TREE_FAMILY_CLASSIFICATION AS DPC_Level1,
TDC_TREE_CLASSIFICATION AS DPC_Level2,
TDC_TREE_SUB_CLASSIFICATION AS DPC_Level3
FROM TD_DATA_PACK_CONTENTS
EXCEPT
SELECT DPC_Level1,DPC_Level2,DPC_Level3 FROM DATA_PACK_CATEGORIES
ORDER BY DPC_Level1
现在这个查询工作正常。我想要做的是将结果保存在单个字符串变量中。
所以我声明3个临时变量来保存DPC_Level1,Lvl2,Lvl3的值,然后我可以将它们连接成一个字符串变量。
所以我像这样修改我的查询。
SELECT DISTINCT @m_DPC_Level11=TDC_TREE_FAMILY_CLASSIFICATION AS DPC_Level1
,@m_DPC_Level2=TDC_TREE_CLASSIFICATION AS DPC_Level2,
,@m_DPC_Level13=TDC_TREE_SUB_CLASSIFICATION AS DPC_Level3
FROM TD_DATA_PACK_CONTENTS
EXCEPT
SELECT DPC_Level1,DPC_Level2,DPC_Level3 FROM DATA_PACK_CATEGORIES
ORDER BY DPC_Level1
但这会引发错误
'为变量赋值的SELECT语句不能是 结合数据检索操作
。我如何解决这个问题。我正在使用SQL Server 2008
答案 0 :(得分:1)
我会选择子查询
select @m_DPC_LEvel11 = DPC_Level1,
@m_DPC_Level2 = DPC_Level2,
@m_DPC_Level13 = DPC_Level3,
FROM
(SELECT DISTINCT TDC_TREE_FAMILY_CLASSIFICATION AS DPC_Level1,
TDC_TREE_CLASSIFICATION AS DPC_Level2,
TDC_TREE_SUB_CLASSIFICATION AS DPC_Level3
FROM TD_DATA_PACK_CONTENTS
EXCEPT
SELECT DPC_Level1,DPC_Level2,DPC_Level3 FROM DATA_PACK_CATEGORIES
ORDER BY DPC_Level1) s