SQL 쿼리에서 변수 사용

문자열 값뿐 아니라 SQL 쿼리에서 변수 개체를 사용할 수 있습니다. SQL 쿼리에서 변수를 사용하려면 쿼리를 등호(=) 기호로 시작하고 앰퍼샌드(&)로 연결된 문자열이 들어있는 수식으로 작성해야 합니다.

필터 값 대신 테이블 이름 위치에 변수를 사용하거나 필터 값 대신 WHERE 절과 결합할 수 있습니다.

테이블 이름에 변수 사용

명시적으로 테이블 이름을 지정하는 대신 테이블 이름을 보유하는 변수를 만들고 해당 변수에서 select 문을 실행할 수 있습니다.

="SELECT * FROM "&GlobalVariables.TableName.Text
	 

즉, 다음과 같습니다.

SELECT * FROM [TableName]
	 

필터 값에 변수 사용

다음과 같이 제품 이름을 보유하는 변수를 만들 수 있습니다.

="SELECT * FROM Products WHERE ProductName =’"&
		GlobalVariables.ProductName.Text&"’"
	 

이는 Products 테이블의 Select와 동일합니다.

SELECT * FROM Products WHERE ProductName= ’Widget’
	 

변수가 문자열 값을 반환하는 경우 작은따옴표(')로 묶어야 합니다. 변수가 숫자 값을 반환하는 경우에는 필요하지 않습니다. 예:

="SELECT * FROM Products WHERE ProductID="&
		GlobalVariables.ProductID.Text
	 

데이터베이스별 구문

데이터베이스 공급자가 SQL을 구현하는 방식에는 차이가 있습니다. 관계형 목록은 SQL 문을 사용하여 정의합니다. 따라서 목록 정의가 다른 여러 유형의 데이터 연결과 작동할 수 있도록 보고서 디자이너가 동일한 명령문을 여러 버전으로 작성해야 할 수 있습니다.

SQL 쿼리에서 변수를 사용하는 경우 필요한 구문은 쿼리를 작성할 데이터베이스의 유형에 따라 다릅니다. 예를 들어 이 명령문은 표준 SQL로 작성됩니다.

=" SELECT Id, AccCde FROM LdgA where AccCde like '"&GlobalVariables.GV_WhereClause.Text&"' "

Oracle 데이터베이스의 경우 다음과 같은 명령문이 사용됩니다.

=" SELECT ""Id"", ""AccCde"" FROM DES.LDGA where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "

DB2 데이터베이스의 경우 명령문은 다음과 같습니다.

=" SELECT ""Id"", ""AccCde"" FROM ADMIN_DEV.""LdgA"" where ""AccCde"" like '"&GlobalVariables.GV_WhereClause.Text&"' "