【发布时间】:2014-01-27 02:40:54
【问题描述】:
我这里有一个查询,它给出了两行结果:
SELECT @SlsChannelDiv= a.division,@SlsChannel= a.department
FROM dbo.m_SalesCode a left join dbo.m_SalesCode b
ON a.up1_code=b.sales_code left join vwEmployeeAds v
ON a.user_id=v.login
WHERE v.login = @SalesLogin
我想将@SlsChannel 参数用于其他查询。
Select * from wo where sales in (@SlsChannel)
但这总是给出第一行结果。
我可以通过提供 XML 路径来修改我的第一个查询:
SELECT @SlsChannelDiv= a.division,@SlsChannel= a.department
FROM dbo.m_SalesCode a left join dbo.m_SalesCode b
ON a.up1_code=b.sales_code left join vwEmployeeAds v
ON a.user_id=v.login
WHERE v.login = @SalesLogin For XML PATH ('')
但是,我收到错误消息,例如:The FOR XML clause is not allowed in a ASSIGNMENT statement.
是否可以在In 参数中创建@SLSChannel 值,以逗号分隔?
【问题讨论】:
-
您想用相应的
@SlsChannelDiv项目替换任何为NULL 的单个@SlsChannelitem 还是替换整个@SlsChannellist 当@SlsChannel列表为NULL 时与其他列表一起使用? -
不,请阅读我想做的事情,在这种情况下,我要使用的查询是
Select * from wo where sales in (@SlsChannel)为什么我有@SlsChannelDiv= a.division,@SlsChannel= a.department我有多个条件 -
是的,这似乎或多或少很清楚,我只是试图将它与您稍后添加的注释相协调,您所说的
sometimes @SlsChannel has no value so I'll use @SlsChannelDiv。但是你现在已经删除了它,我想@bluejaded 的建议应该就可以了。 -
是的,很抱歉混淆了注释,我的意思是实际上我将查询用于多个条件。却误写成这样。
标签: sql sql-server delimiter for-xml-path