У меня есть запрос, который работает так, как ожидалось.
If((Select count(*) from table1 where product = 'carrot')< 5)
Begin
Select Top (5 - (Select count(*) from table1 where product = 'carrot'))
id, product From table2
WHere id NOT IN
(Select id from table1) AND product = 'carrot'
Order by newid()
END
То, что я хочу сделать, это Союз или Союз, все говорят, что картофель другого продукта
If((Select count(*) from table1 where product = 'potato')< 5)
Begin
Select Top (5 - (Select count(*) from table1 where product = 'potato'))
id, product From table2
WHere id NOT IN
(Select id from table1) AND product = 'potato'
Order by newid()
END
Я продолжаю получать синтаксическую ошибку, когда добавляю UNION между IF или после END. Возможно ли это или другой способ лучше....
Что я делаю, так это пытаюсь выбрать случайный образец моркови, сначала я хочу проверить, есть ли у меня 5 морковей в таблице 1. если я не запускаю образец. Если у меня нет 5 морковок, запустите пробоотборник и верните 5 морковок. Затем я отфильтровываю, если они уже существуют в таблице 1 по идентификатору. Затем он вычитает количество из нового образца, итого получается пять.
Это работает хорошо, теперь я хочу работать с другими продуктами, например, салатом, картофелем и т. Д. Но я хочу СОЮЗ или СОЮЗ Все. надежда имеет смысл.
Select Top (5 - (Select count(*) from #Table1 where product = 'carrots')< 5)
. Я полагаю, вы не хотите, чтобы там была эта ‹5? - person Brian Pressler   schedule 24.08.2019