ADO에서 SELECT 구문 2 사용
저자:Eve Cole
업데이트 시간:2009-05-30 19:54:35
이전 기사에서 계속:
WHERE에서는 다음 BETWEEN, LIKE 및 IN 연산자를 사용할 수 있습니다.
사이...그리고
Between...And는 표현식의 값이 지정된 범위 내에 속하는지 여부를 결정합니다. 구문은 다음과 같습니다.
expr value1과 value2 사이
expr의 값이 value1과 value2 사이에 있으면 Between...And 연산자가 True를 반환하고, 그렇지 않으면 False를 반환함을 나타냅니다.
또한 value1과 value2 사이에 Not expr 논리 연산을 추가하여 반대 조건, 즉 expr이 value1과 value 2의 범위를 벗어나는지 확인할 수도 있습니다.
expr, value1 또는 value2가 Null인 경우 Between...And는 Null 값을 반환합니다.
Between...And 연산자에는 와일드카드 문자 *를 사용할 수 없습니다. 예를 들어 1000과 5000 사이의 제품 코드 번호를 찾는 데 100*과 500*을 사용할 수 없습니다.
좋다
일치하는 키워드를 찾는 것을 좋아합니다.
Like 뒤에는 비교할 문자열 또는 문자열 리터럴을 나열하는 표현식이 옵니다.
표현식에서 Like 연산자를 사용하여 필드 데이터를 문자열 표현식과 비교할 수 있습니다. 와일드카드 *를 사용하여 Like "王*"와 같은 유사한 데이터를 찾을 수 있으며, 쿼리는 모든 필드에서 [王]으로 시작하는 데이터를 반환합니다.
Like 이후 연산자 표현식에 사용할 수 있는 기호:
%: 하나 이상의 문자를 나타내는 와일드카드 문자입니다. 예를 들어 LIKE jack%는 jack으로 시작하는 모든 문자열 리터럴을 찾고 LIKE %jack%는 jack을 포함한 문자열 리터럴을 찾습니다.
_: 한 문자의 와일드카드 문자(예: LIKE jack_)는 jack1, jacka 등과 같은 문자열 리터럴을 찾고, LIKE _jack_은 ajackb, cjackf 등과 같은 문자열 리터럴을 찾습니다.
[xy]: 문자 범위를 지정합니다. 예를 들어 LIKE [ac]jack은 ajack1, bjack, cjack 등과 같은 문자열 텍스트를 찾습니다.
[^xy]: 제외된 문자 범위를 지정합니다. 예를 들어 LIKE [^ac]jack은 ajack1, bjack, cjack 등과 같은 문자열 리터럴을 찾지 않습니다.
다음 예에서는 문자 A로 시작하고 그 뒤에 B와 G 사이의 문자와 숫자가 오는 데이터를 얻습니다.
"A[BG]#"처럼
안에
IN 연산식, 범위가 제한됩니다.
구문은 다음과 같습니다.
expr [아님] In(값1, 값2,…)
그 중 expr은 연산 표현식 필드입니다. value1, value2, ...는 지정된 범위 목록입니다.
예를 들어 In 연산자를 사용하여 학생들이 거주해야 하는 도시(광저우, 선전 또는 산터우)를 지정할 수 있습니다.
선택하다 *
학생으로부터
WHERE CityIn ('광저우시', '심천시', '산터우시')
이 SQL 명령을 사용하는 ASP 프로그램의 예를 살펴보겠습니다.
IN 절을 사용하여 범위를 결정할 수 있습니다. 예를 들어 ASP 프로그램 rs24.asp는 [SELECT 이름, 주제, 점수 From Exam Where 점수 In(SELECT 점수 From Exam Where 점수 >= 60)]을 사용합니다. IN 점수가 60점 기록 이상인지 확인하려면 다음을 수행합니다.
<%
conn1 = Server.CreateObject("ADODB.Connection") 설정
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver(*.mdb)};DriverId=25;FIL=MS Access;"
rs2 = Server.CreateObject("ADODB.Recordset") 설정
SqlStr = "이름, 과목, 시험 점수를 선택하세요. 점수는 어디에 있습니다(점수 >= 60인 시험에서 점수 선택)."
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>In: 60점 미만은 계산되지 않습니다."
rs2.EOF가 아닌 동안 수행
Response.Write "<BR>" & rs2("이름") & " " & rs2("제목") & " 점수: " & rs2("점수")
rs2.다음으로 이동
고리
RS2.닫기
%>
위의 ASP 프로그램 rs24.asp는 클라이언트측 브라우저를 사용하여 실행 결과를 찾아보고 점수가 60점 이상인 기록을 표시합니다.
없음
NOT IN 표현은 지정된 범위에 속하지 않음을 의미합니다.
ASP 프로그램에서 이 SQL 명령을 사용하는 예를 살펴보겠습니다.
Not In 절을 사용하여 표시하지 말아야 할 레코드를 결정할 수 있습니다. 예를 들어 ASP 프로그램 rs24.asp는 다음과 같습니다. [SELECT name, subject, Score From Exam Where Score Not In(SELECT Score From Exam Where Score) >= 60)], IN을 사용하여 점수가 60점 이하인 레코드, 즉 점수가 60점 미만인 레코드를 찾습니다.
<%
conn1 = Server.CreateObject("ADODB.Connection") 설정
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver(*.mdb)};DriverId=25;FIL=MS Access;"
rs2 = Server.CreateObject("ADODB.Recordset") 설정
SqlStr = "이름, 주제, 점수가 없는 시험에서 점수 선택(점수 >= 60인 시험에서 점수 선택)"
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>Not In: 60점 이상의 점수는 계산되지 않습니다."
rs2.EOF가 아닌 동안 수행
Response.Write "<BR>" & rs2("이름") & " " & rs2("제목") & " 점수: " & rs2("점수")
rs2.다음으로 이동
고리
RS2.닫기
%>
위의 ASP 프로그램 rs24.asp의 경우 클라이언트 측 브라우저를 사용하여 실행 결과를 찾아보고 점수가 60점 이하인 기록을 표시합니다.