SQL programming 
LIKE 조건문 : LINQ 쿼리

TSQL 문장에서 특정 문자열이 들어가는 데이타를 필터링할 때, 주로 LIKE 문을 사용한다. 예를 들어, NAME컬럼이 LEE로 시작되는 모든 데이타를 조건식으로 쓸 경우 WHERE NAME LIKE 'LEE%' 와 같이 쓴다. 또한, 만약 모든 COMMENT중 SQL이 들어가는 경우를 필터링할 경우, WHERE COMMENT LIKE '%SQL%' 과 같이 쓸 수 있다. 그렇다면, LINQ to SQL에서 이러한 표현을 어떻게 표현할까? TSQL문장을 직접 사용하는 경우가 아닌 경우, C# 언어 안에서 이를 표현하기는 쉽지 않다. 그래서 이런 표현을 보다 쉽게 하기 위해 SqlMethods 라는 보조 클래스가 사용된다. SqlMethods.Like() 메서드는 컬럼명과 매칭 패턴을 지정하여 TSQL문의 LIKE문을 생성한다. 아래 예는 부서명(DeptName)안에 Sales 라는 문자열이 들어 있는 모든 데이타를 찾는다.

예제






LIKE 조건문 : 메서드식 표현

LIKE 조건문을 메서드식으로 표현하는 것도 가능한데, 이는 Where() 메서드안에 SqlMethods.Like()를 사용하면 쉽게 표현할 수 있다. 아래 예제는 위의 쿼리식 표현과 동일한 표현이라 할 수 있다.

예제





SqlMethods : DateDiff* 메서드

SqlMethods 클래스의 또 다른 유용한 메서드는 DateDiffMonth, DateDiffDay, DateDiffHour 등과 같은 DateDiff* 메서드들이다. 이 메서드들은 두 날짜 컬럼값의 차이를 월, 일, 시간 등으로 표현할 수 있게 해준다. 아래는 멤버쉽 시작일과 종료일의 차이가 100일 이상인 회원 데이타를 가져오기 위한 쿼리 예이다.

예제





본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.