Я установил мойSQL Set/Declare Variable
declare @area as varchar(500)
set @area = '''Area1'',''Area2'''
Я пытался поставить его в WHERE
пункте, но он не обнаруживает area
. Я предполагаю, что что-то не так с set @area =
?
Это то, что я пытаюсь привести его в:
where area in (@area)
Пожалуйста, помогите, спасибо.
'область в()' краю применено: @area такое же, как 'области в ('' 'Area1' ''. 'Area2' '') '. Таким образом, SQL Server ищет фактическое значение в таблице, равное целой строке: «Area1», «Area2». SQL Server не знает, что такое массив. Если вы хотите, чтобы он проверял несколько значений, вам нужно разбить эту строку с помощью функции split или использовать динамический SQL или, желательно, путем их ввода в виде отдельных значений с использованием параметра table-value. См. Http://sqlperformance.com/2012/07/t-sql-queries/split-strings и http://sqlperformance.com/2012/08/t-sql-queries/splitting-strings-now-with -less -t-SQL. –
Если вы можете объяснить, где '' '' Area1 '', '' Area2 '' '' и от того, что у вас есть над этим, это будет намного легче помочь. –
@AaronBertrand Я буду использовать ASP для выполнения этого sql. ASP будет использовать область «Area1», «Area2», «Area3» '' – Nguyenal07