Мне нужна помощь, чтобы изменить код, иногда выдает ошибку
Я пытаюсь запросить данные (MAC-адреса) по порядку, но показываю только первые найденные данные. Это работает большую часть времени, но я думаю, что это дает мне ошибку при обнаружении нескольких MAC-адресов? Есть ли способ заставить этот код работать?
Ошибка, которую я получаю:
MACRO SQL ERROR - Подзапрос возвратил больше чем 1 значение. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.
Язык SWQL не существует в stackru, и я не могу его добавить, поэтому я выбрал SQL-сервер, но в основном он тот же.
select coalesce((select (MAC)
from NodeMACAddresses
where NodeID=$@nodeid@), NULLIF('${MAC_Address}', ''), 'MAC address missing')
1 ответ
Одним из способов решения этой проблемы может быть:
select coalesce((select top 1 (MAC)
from NodeMACAddresses
where NodeID=$@nodeid@), NULLIF('${MAC_Address}', ''), 'MAC address missing')
Теперь ваш подзапрос всегда будет возвращать не более 1 строки и решит вашу проблему. Но это будет работать только до тех пор, пока вы не захотите показать только 1 из существующих MAC-адресов для каждого узла.