Переменная Temp, используемая в select Query

Я попытался извлечь данные из таблицы, используя временную переменную. Временная переменная возвращает правильные данные, но когда вы пытаетесь использовать ее в Query, она не возвращает правильный набор данных. Я попытался получить данные с использованием жестко запрограммированного значения temp в запросе, он отлично работает. Может ли кто-нибудь помочь мне найти проблему здесь?

Ниже мой код, который я пробовал

Declare @tempwordFinal varchar(50) select @tempwordFinal = ''''+'%'+'The Big Bang'+'%'+'''' select @tempwordFinal --here the output is - '%The Big Bang%' SELECT * from MasterProgram where ProgramTitle like @tempwordFinal --not working SELECT * from MasterProgram where ProgramTitle like '%The Big Bang%' -- working 

Поскольку переменная @tempwordFinal имеет одинарные кавычки в начале и в конце. Поэтому он ожидает, что данные в столбце ProgramTitle будут иметь одинарные кавычки в начале и в конце. Кроме подстановочных знаков, которые присутствуют внутри переменной, будут рассматриваться как данные, поэтому она терпит неудачу.

 select @tempwordFinal --here the output is - '%The Big Bang%' ^ ^ 

Попробуйте этот путь

 Declare @tempwordFinal varchar(50) select @tempwordFinal = '%The Big Bang%' select 1 where 'The Big Bang' like @tempwordFinal 

Когда вы используете переменные для типа данных varchar нам не нужны одинарные кавычки. Одиночные кавычки требуются только при жестком кодировании строковых констант

Проблема заключалась в ваших (ускользающих) дополнительных апострофах. Как это '''' . Вам это не нужно, если вы не ищете слова в базе данных, которые явно содержат апострофы. Исправленный код выглядит следующим образом:

 Declare @tempwordFinal As Varchar(50); Set @tempwordFinal = '%The Big Bang%'; Select @tempwordFinal; -- %The Big Bang% SELECT * from MasterProgram where ProgramTitle like @tempwordFinal; 
  • Запрос SQL с похожим оператором из двух таблиц
  • SQL LIKE% NOT SEARCHING
  • SQL Search Statement, как Google?
  • Использование SQL LIKE-оператора с %%
  • как использовать несколько строк в одном выражении в sql
  • Как я могу индексировать строковые значения SQL Server для оптимизации поиска по шаблону слева?
  • SQL Server, используя LIKE для поиска столбца firstname для символов ""
  • Исключить строку в SQL Server, чтобы ее можно было использовать в выражении LIKE
  • SQL Server Dynamic SQL с предложением LIKE и SQL Injection
  • Оператор LIKE в SQL Server
  • Как писать подобные заявления в Entity Framework, когда любимая оценка содержит%
  • Interesting Posts

    Полнотекстовый поиск с внутренним соединением очень медленный

    Переменная SQL для хранения списка целых чисел

    Как преобразовать данные таблицы в значение JSON в SQL Server, используя значения столбцов в качестве узлов?

    Стол блокировки TransactionScope и IsolationLevel

    Как определить, определена ли переменная (-v) в командной строке (SQLCMD)

    SQL Server: как выполнить UPDATE из рекурсивной функции?

    INSERT INTO Выполнение VBA

    Рекурсивный запрос COUNT (SQL Server)

    Невозможно подключиться к движку базы данных с помощью студии управления SQL Server

    Выбор из подмножества на основе значения внутри одного и того же подмножества?

    Получение уникального набора данных из полей XML в SQL 2008 R2

    определить, являются ли какие-либо значения нулевыми, если true, то false, else true

    Выполнение «UNION» в запросах с помощью «ORDER BY»

    Сложная хранимая процедура в SQL Server

    Msg 8672, уровень 16, состояние 1, строка 1 Операция MERGE пыталась ОБНОВИТЬ или УДАЛИТЬ одну и ту же строку более одного раза

    Давайте будем гением компьютера.