2015-05-05 4 views
0

Я хотел бы использовать оператор in в динамическом запросе. На данный момент мне нужно, чтобы кто-то указал в правильном направлении, как структурировать апострофы для разделения значений, чтобы они не мешали апострофам для динамической структуры запросов. Это раздел запроса, который задает проблемы, поэтому мне нужно знать, как разместить разделитель, чтобы все значения могли быть включены в динамический формат запроса, а не в обычный формат запроса, который у меня есть прямо сейчас.Как использовать оператор IN в динамическом запросе

WHERE ai.ImNumber != me.Company 
    AND me.ID IN ('value1','value2','value2','value3','value4','value5')' 

Мой запрос является

SET @SQLString = 'select me.EventID , ai.AggregateInfo, '''[email protected]+''' AS DateBegin, '''[email protected]+''' AS DateEnd 
FROM tbl_MajorEarners me 
INNER JOIN tbl_currentearners e ON e.EventID = me.EventID 
INNER JOIN tbl_AggregateInfo ai ON ai.AggregateID = cs.ItemID 
WHERE ai.ImNumber != me.CompanyNUmber 
AND me.ID IN ('value1','value2','value2','value3','value4','value5')' 
+0

это для mysql или sql-server? – ughai

+0

добавить более подробную информацию о вашем вопросе? у вас будет 5 динамических значений? Ваш вопрос не ясно – ughai

+0

Я использую SQLServer 2008, и это мой динамический запрос \t 'SET @SQLString = 'выберите me.EventID, ai.AggregateInfo, \t ''' + @ DateBegin +' '' AS DateBegin, '' '+ @ EDateEnd +' '' AS DateEnd \t ОТ tbl_MajorEarners мне \t INNER JOIN tbl_currentearners е \t НА e.EventID = me.EventID \t INNER JOIN tbl_AggregateInfo А.И. \t ai.AggregateID = cs.ItemID ГДЕ аи .ImNumber! = Me.CompanyNUmber AND me.ID IN ('value1', 'value2', 'value2', 'value3', 'value4', 'val ue5 ')' ' – anchor

ответ

0

Я думаю, что это то, что вы ищете

SET @SQLString = 'select me.EventID , ai.AggregateInfo, ''@DateBegin'' AS DateBegin, ''@EDateEnd'' AS DateEnd 
FROM tbl_MajorEarners me 
INNER JOIN tbl_currentearners e ON e.EventID = me.EventID 
INNER JOIN tbl_AggregateInfo ai ON ai.AggregateID = cs.ItemID 
WHERE ai.ImNumber != me.CompanyNUmber 
AND me.ID IN (''value1'',''value2'',''value2'',''value3'',''value4'',''value5'')' 

который устанавливает @SqlString в

select me.EventID , ai.AggregateInfo, '@DateBegin' AS DateBegin, '@EDateEnd' AS DateEnd 
FROM tbl_MajorEarners me 
INNER JOIN tbl_currentearners e ON e.EventID = me.EventID 
INNER JOIN tbl_AggregateInfo ai ON ai.AggregateID = cs.ItemID 
WHERE ai.ImNumber != me.CompanyNUmber 
AND me.ID IN ('value1','value2','value2','value3','value4','value5') 
Смежные вопросы