0

我正在尝试按顺序查询数据(MAC 地址),但只显示找到的第一个数据。它大部分时间都有效,但我想当找到多个 MAC 地址时它会给我一个错误?有没有办法让这段代码工作?

我得到的错误:

MACRO SQL 错误 - 子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。

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

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

1 回答 1

1

一种解决方法可能是:

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

现在您的子查询将始终最多返回 1 行,并解决您的问题。但这仅在您只想为每个节点显示 1 个现有 MAC 地址时才有效。

于 2019-06-26T12:31:47.257 回答