SELECT * FROM MyTable WHERE MyRow IN ('100','200','300')
Попытка сделать выше, объявляя локальную переменную так:Как объявить строку строк?
DECLARE @What VARCHAR(MAX)
SET @What = '100','200','300'
SELECT * FROM MyTable WHERE MyRow IN (@What)
Есть ли способ, чтобы сделать эту работу? У «пытались» это:
SET @What = "'100','200','300'"
и это:
SET @What = ('100','200','300')
Первый из них является наиболее логичным, так как он в большинстве случаев могут быть использованы на любом другом языке, кроме SQL. Длина @What
будет варьироваться, поэтому я не могу просто иметь одну переменную для каждой.
Как объявить локальную строковую переменную содержать строки?
«как это в большинстве случаев могут быть использованы в любом другом языке, но SQL» на самом деле? Можете ли вы назвать любой другой язык, на котором система проверит содержимое параметра * single * string, найдет запятые внутри и решит вместо этого превратить его в * несколько параметров *? Я не знаю, как это происходит. На таком языке, как вы передаете ему параметр, где запятая является законной частью параметра? –
Я говорю о наличии строк с одинарными кавычками внутри строки с двойными кавычками. В SQL двойные кавычки отсутствуют. – Espen