Я собираю данные из хранимой процедуры t-sql для импорта в программу на c #. Я хотел бы сузить данные в первую очередь. У меня есть данные, которые имеют три поля, которые описывают три значения, которые следуют за ними. Мне нужно найти только поля с одним из дюжины ключевых слов в описании.
Я использовал что-то, что ОБЪЕДИНЯЕТ все поля со значениями, тогда
...
AND (
TEXT1234.AccountValue LIKE '%word1%'
OR TEXT2345.AccountValue LIKE '%word1%'
OR TEXT3456.AccountValue LIKE '%word1%'
OR TEXT1234.AccountValue LIKE '%word2%'
OR TEXT2345.AccountValue LIKE '%word2%'
OR TEXT3456.AccountValue LIKE '%word2%'
OR TEXT1234.AccountValue LIKE '%word3%'
OR TEXT2345.AccountValue LIKE '%word3%'
OR TEXT3456.AccountValue LIKE '%word3%'
...
Теперь я пытаюсьсделать что-то вроде этого:
declare @wordList table (Word varchar(50))
insert into @wordList values ('%word1%'),('%word2%'),('%word3%')...
...
SELECT *
FROM [DB1].dbo.Table_info
WHERE Account = 'TEXT1234'
AND AccountValue LIKE (SELECT * FROM @wordList)
...
(Это один из множества похожих кусков UNION. Вот почему я хотел бы использовать список слов, чтобы сократить код и содержать слова водно место в случае будущих изменений.)
ИЛИ что-то вроде:
SELECT *
FROM [DB1].dbo.Table_info
WHERE Account = 'TEXT1234'
AND AccountValue CONTAINS (SELECT * FROM @wordList)
...
Ожидаемый результат:
TEXT1234_Account TEXT1234_AccountValue Acct1234 Acct1234_Value
TEXT1234 word3 something something ACCT1234 48
TEXT3456_Account TEXT3456_AccountValue Acct3456 Acct3456_Value
TEXT3456 Something word1 something ACCT3456 48
Пожалуйста, дайте мне знать, если вам нужно больше кода дляпроанализируйте это ... (я уже не могу держать это краткое изложение.)