Существует несколько способов экранирования строк в SQL запросах.
1. Использование двойных одинарных кавычек:
Внутри строки символы кавычек должны быть представлены двойными одинарными кавычками. Например:
```sql
SELECT 'O''Reilly' FROM table;
```
Результат будет: `O'Reilly`
2. Использование функции REPLACE():
Вы можете использовать функцию REPLACE(), чтобы заменить одинарные кавычки в строке на двойные одинарные кавычки. Например:
```sql
SELECT REPLACE('O''Reilly', '''', '''''') FROM table;
```
Результат будет: `O''Reilly`
3. Использование ESCAPE:
Вы можете использовать ключевое слово ESCAPE для указания символа экранирования и указания специальных символов, которые должны быть экранированы. Например:
```sql
SELECT 'O\'Reilly' FROM table;
```
Результат будет: `O'Reilly`
В этом случае символ экранирования - обратная косая черта (\).
4. Параметризация запросов:
Если вы используете параметризованные запросы, вместо того чтобы встраивать значения в строку запроса, вы можете передавать значения в виде параметров. Это поможет избежать проблем с экранированием символов. В различных СУБД существуют различные способы реализации параметризованных запросов.
Вот пример параметризованного запроса в MS-SQL:
```sql
DECLARE @name NVARCHAR(100) = 'O''Reilly';
SELECT @name FROM table;
```
Здесь @name - это параметр, значение которого можно передавать из внешнего кода. Результат будет: `O'Reilly`
Важно помнить, что правильное экранирование строк в SQL запросах может предотвратить SQL-инъекции и обеспечить безопасность ваших запросов. Поэтому рекомендуется использовать параметризованные запросы вместо встраивания значений прямо в строку запроса.