Мне нужна помощь, чтобы изменить код, иногда выдает ошибку - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь запросить данные (MAC-адреса) по порядку, но показываю только первые найденные данные.Это работает большую часть времени, но я думаю, что это дает мне ошибку при обнаружении нескольких MAC-адресов?Есть ли способ заставить этот код работать?

Я получаю ошибку:

MACRO SQL ERROR - Подзапрос возвратил более 1 значения.Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.

Язык SWQL не существует в stackoverflow иЯ не могу добавить его, поэтому я выбрал SQL-сервер, но в основном он такой же.

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

1 Ответ

1 голос
/ 26 июня 2019

Одним из способов решения этой проблемы может быть:

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

Теперь ваш подзапрос всегда будет возвращать не более 1 строки и решит вашу проблему. Но это будет работать только до тех пор, пока вы не захотите показать только 1 из существующих MAC-адресов для каждого узла.

...