我需要一些帮助来更改一些代码,有时会出错

时间:2019-06-26 11:34:57

标签: sql solarwinds-orion

我试图按顺序查询数据(MAC地址),但仅显示找到的第一个数据。 它在大多数时间都有效,但是我猜找到多个MAC地址时会给我一个错误?有没有办法使此代码有效?

我得到的错误:

  

宏SQL错误-子查询返回的值超过1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。

SWQL语言在stackoverflow中不存在,我无法添加它,所以我选择了SQL-server,但基本上是相同的。

select coalesce((select (MAC) 
from NodeMACAddresses 
where NodeID=$@nodeid@), NULLIF('${MAC_Address}', ''), 'MAC address missing')

1 个答案:

答案 0 :(得分:1)

一种解决方法可能是:

select coalesce((select top 1 (MAC) 
from NodeMACAddresses 
where NodeID=$@nodeid@), NULLIF('${MAC_Address}', ''), 'MAC address missing')

现在,子查询将始终最多返回1行,并解决您的问题。但这仅在您只希望为每个节点显示现有MAC地址中的1个之前起作用。