SQL LIKE
명령에서 작은 따옴표 (')를 제거하는 다양한 방법은 무엇입니까?SQL 'LIKE'명령에서 작은 따옴표를 이스케이프 처리하는 방법
작은 따옴표를 이스케이프해야 할 때마다 두 개의 작은 따옴표를 붙이는 것이 한 가지 방법입니다.
사람들이 제안 할 수 있습니까?
데이터베이스 : SQL Server 2005 및 Oracle 10g는
SQL LIKE
명령에서 작은 따옴표 (')를 제거하는 다양한 방법은 무엇입니까?SQL 'LIKE'명령에서 작은 따옴표를 이스케이프 처리하는 방법
작은 따옴표를 이스케이프해야 할 때마다 두 개의 작은 따옴표를 붙이는 것이 한 가지 방법입니다.
사람들이 제안 할 수 있습니까?
데이터베이스 : SQL Server 2005 및 Oracle 10g는
당신은 이미 답을 가지고있다. 두 개의 작은 따옴표를 사용해야합니다.
select * from table where field like '%''something''%'
가장 좋은 방법은 매개 변수를 ADO 또는 ADO.NET과 바인딩하는 것입니다.
처럼 (ADO.NET와 C#의 예) : SQL Server 2005에서
SqlCommand x = new SqlCommand(sqlConnection, @"select * from table where col like '%'[email protected]+'%'");
x.parameters.add(new SqlParameter("@para1",sqltype.varchar,100)).value = "this is a' test";
당신 '(')는 결합하지 않으려면 이중 따옴표와 작은 따옴표() '탈출 :
select * from table where col like '%this is a'' test%'
두 개의 작은 따옴표가 최상의 해결책입니다.
또는 CHAR(39)
을 사용하여 작은 따옴표 문자를 나타낼 수 있습니다.
select * from mytable where text like q'#%Here's some text%#';
이 오라클 10.2 이후로 볼 수 있습니다 :
UPDATE Employee SET LastName = 'O' + CHAR(39) + 'Brien'
WHERE ID=1;
CHAR (39)가 SQL에서 작동하지 않았습니다. – Egalitarian
또한 "Q-인용"방법이있다.
'#'문자를 따옴표 구분 기호로 사용했지만 문자열에 표시되지 않는 문자는 거의 사용할 수 있습니다 (공백 문자와 같은 몇 가지 예외가 있음).
위와 같은 간단한 예에서는 아마 이렇게하지 않을 것입니다. 나는 작은 따옴표를 두 번 올리 겠지만 많은 문자열 리터럴을 포함하는 큰 동적 SQL 문을 작성할 때 편리합니다.
이것은 PL/SQL 블록에서만 작동합니까? 나는 우리가 평범한 SQL에서 이것을 사용할 수 없다고 생각한다. – XING
감사합니다. bdukes, 전혀 알지 못했습니다. – Floyd