---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# 테이블 쿼리 중

# 스크립트에서 테이블 쿼리 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 12분

GlideRecord API의 메서드를 사용하여 테이블에서 모든 기록을 반환하거나, 테이블에서 특정 조건을 만족하는 기록을 반환하거나, 단일 테이블 또는 텍스트 인덱스 그룹의 여러 테이블에서 문자열을 포함하는 기록을 반환할 수 있습니다.

GlideRecord API를 사용하여 테이블을 쿼리합니다. API 참조는 [GlideRecord - 범위 지정을 참조하십시오.](https://servicenow-prod.fluidtopics.net/PdjBDkljzRHVS4qRn2BIdw#c_GlideRecordScopedAPI "범위가 지정된 GlideRecord API는 데이터베이스 작업에 사용됩니다.")

## 테이블에서 모든 기록 반환 {#c_UsingGlideRecordToQueryTables__section_bgd_ryw_g3b}

테이블을 쿼리하려면 먼저 GlideRecord 객체를 생성합니다. GlideRecord를 작성하려면 스크립트에서 다음을 작성합니다.

    var target = new GlideRecord('incident');

GlideRecord를 생성하면 인시던트 테이블의 GlideRecord 객체인 `대상` 변수가 생성됩니다.  
인시던트 테이블의 모든 기록을 처리하려면 다음 스크립트를 추가합니다.

    target.query(); // Issue the query to the database to get all records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

이 스크립트는 데이터베이스에 query() 를 발행합니다. next()에 대한 각 호출은 처리할 다음 기록을 로드합니다.

## 쿼리 조건을 충족하는 테이블에서 기록을 반환합니다. {#c_UsingGlideRecordToQueryTables__section_thn_tyw_g3b}

대부분의 경우 특정 기록 또는 특정 기록 세트를 검색하려고 하며, 가져오려는 기록을 정의하는 몇 가지 기준(쿼리 조건)이 있습니다. 예를 들어, 우선순위 값이 1인 모든 인시던트 기록을 가져오려는 경우를 가정해 보겠습니다. 다음은 이를 수행하는 코드입니다.

    var target = new GlideRecord('incident'); 
    target.addQuery('priority',1);
    target.query(); // Issue the query to the database to get relevant records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

예시 스크립트에는 `target.addQuery('priority', 1);`가 포함되어 있습니다. 이 줄은 필드가 1인 기록 priority 만 원한다는 것을 나타냅니다. 일반적으로 수행하려는 대부분의 쿼리는 동등 쿼리입니다. 필드가 값과 같은 기록을 찾으려는 쿼리입니다. 따라서 동일 연산자를 제공할 필요가 없습니다. 그러나 필드가 priority 1보다 큰 모든 인시던트를 찾으려고 한다고 가정해 보겠습니다. 이 경우 쿼리에 적용할 연산자를 제공합니다.

    var target = new GlideRecord('incident') ; 
    target.addQuery('priority','>',1);
    target.query(); // Issue the query to the database to get relevant records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

## 문자열이 포함된 테이블에서 기록을 반환합니다. {#c_UsingGlideRecordToQueryTables__section_kwq_3zw_g3b}

" `123TEXTQUERY321"` 예약된 이름을 사용하여 테이블의 모든 필드에서 문자열 일치를 검색합니다. 예를 들어, 이 스크립트는 "이메일" 문자열이 포함된 필드 값이 있는 인시던트 테이블의 기록을 반환합니다.

    var now_GR = new GlideRecord('incident');
    gr.addQuery('123TEXTQUERY321', 'email');
    gr.query();

`'123TEXTQUERY321'`은 `addQuery()` 메서드의 매개변수에 대해 name 예약된 옵션입니다. 인코딩된 쿼리 문자열에서 이 옵션을 사용할 수 있습니다. 예를 들어 `gr.addQuery('123TEXTQUERY321', 'email');` 대신 `gr.addEncodedQuery('123TEXTQUERY321=email')`를 사용할 수 있습니다.

문자열 검색은 대/소문자를 구분하지 않습니다. <kbd class="ph userinput">시스템은 이메일</kbd>, <kbd class="ph userinput">이메일</kbd> 또는 <kbd class="ph userinput">이메일을</kbd> 검색하든 동일한 결과를 반환합니다.  
주:  
문자열 검색을 사용하여 쿼리하려면 먼저 검색할 테이블에 대해 텍스트 인덱싱을 구성하고 선택적으로 속성을 검색해야 합니다. 자세한 내용은 [인덱싱 및 검색을 위한 단일 테이블 구성을 참조하세요.](https://www.servicenow.com/docs/access?context=configure-single-table-for-indexing&version=australia&pubname=australia-platform-administration&ft:locale=en-US)

## 문자열을 포함하는 텍스트 인덱스 그룹의 여러 테이블에서 기록 반환 {#c_UsingGlideRecordToQueryTables__section_h2m_jzw_g3b}

" `123TEXTINDEXGROUP321"` 예약된 이름을 사용하여 텍스트 인덱스 그룹의 테이블에서 문자열을 검색합니다. 이 옵션은 텍스트 인덱스 그룹의 설정을 사용하여 계산된 관련성 점수와 함께 결과를 반환합니다.  
주:  
텍스트 인덱스 그룹에서 한 번에 하나의 테이블만 쿼리할 수 있습니다. 다중 단일 테이블 쿼리를 실행하고 결과를 병합하여 관련성 점수별로 정렬하려는 경우 이 옵션을 사용합니다. 이 옵션의 장점은 개별 테이블 쿼리에 대한 검색 결과 관련성 점수가 텍스트 인덱스 그룹의 모든 테이블에 대해 일관되게 정규화된다는 것입니다.  
예를 들어, 이 스크립트는 키워드 '이메일'을 포함하는 지식베이스 테이블의 기록을 '포털' 인덱스 그룹에 대해 계산된 관련성 점수와 함께 반환합니다.

    var now_GR = new GlideRecord('kb_knowledge');
    gr.addQuery('123TEXTQUERY321', 'email');
    gr.addQuery('123TEXTINDEXGROUP321', 'portal');
    gr.query();

검색하려는 "포털" 인덱스 그룹의 각 추가 테이블에 대해 유사한 쿼리를 만든 다음 개별 쿼리의 결과를 병합하여 관련성 점수가 가장 높은 결과를 먼저 표시할 수 있습니다. 이러한 검색 쿼리는 모두 동일한 텍스트 인덱스 그룹 검색 설정을 사용하기 때문에 결과에 대한 관련성 점수는 모두 일관되게 정규화됩니다. `gr.addQuery('123TEXTINDEXGROUP321', 'portal')` 메서드를 사용하지 않고 동일한 테이블 세트를 검색한 경우 개별 쿼리의 관련성 점수가 다르게 정규화되고 병합된 결과 세트를 정렬하는 데 유용한 기초가 되지 않습니다.

`'123TEXTINDEXGROUP321'`은 `addQuery()` 메서드의 매개변수에 대해 name 예약된 옵션입니다. 인코딩된 쿼리 문자열에서 이 옵션을 사용할 수 있습니다. 예를 들어 `gr.addQuery('123TEXTINDEXGROUP321', 'portal');` 대신 `gr.addEncodedQuery('123TEXTINDEXGROUP321=portal')`를 사용할 수 있습니다.

다중 테이블 문자열 검색은 대/소문자를 구분하지 않습니다. <kbd class="ph userinput">시스템은 이메일</kbd>, <kbd class="ph userinput">이메일</kbd> 또는 <kbd class="ph userinput">이메일을</kbd> 검색하든 동일한 결과를 반환합니다.  
주:  
인덱스 그룹의 테이블을 쿼리하려면 먼저 해당 테이블에 대한 텍스트 인덱싱 및 검색 속성을 구성하고 인덱스 그룹에 포함해야 합니다. 자세한 내용은 [인덱싱 및 검색을 위한 여러 테이블 구성을 참조하세요.](https://www.servicenow.com/docs/access?context=index-multiple-tables&version=australia&pubname=australia-platform-administration&ft:locale=en-US) 인덱스 그룹의 모든 테이블은 V4 인덱싱 형식을 사용해야 합니다.

## 사용 가능한 JavaScript 연산자 {#ariaid-title2}

addQuery() 요청 내에서 사용할 수 있는 연산자에 대해 설명합니다.
{#r_AvailableJavaScriptOperators__table_pc2_kqj_2p__entry__3}

| 필드 | 정의 | addQuery |
|-|-|-|
| = | 필드는 제공된 값과 같아야 합니다. | addQuery('우선순위', '=', 1); |
| \> | 필드는 제공된 값보다 커야 합니다. | addQuery('우선순위', '\>', 1); |
| \< | 필드는 제공된 값보다 작아야 합니다. | addQuery('우선순위', '\<', 3); |
| \>= | 필드는 제공된 값보다 크거나 같아야 합니다. | addQuery('우선순위', '\>=', 1); |
| \<= | 필드는 제공된 값보다 작거나 같아야 합니다. | addQuery('우선순위', '\<=', 3); |
| != | 필드는 제공된 값과 같을 수 없습니다. | addQuery('우선순위', '!=', 1); |
| 시작 | 필드는 제공된 값으로 시작해야 합니다. 오른쪽에 표시된 예는 <var class="keyword varname">short_description</var> 필드가 오류 텍스트로 시작하는 모든 기록을 반환합니다. | addQuery('short_description', 'STARTSWITH', '오류'); |
| 포함 | 필드에는 텍스트 어딘가에 제공된 값이 포함되어야 합니다. 오른쪽에 표시된 예는 <var class="keyword varname">short_description</var> 필드에 필드의 아무 곳에나 오류가 포함되어 있는 모든 기록을 반환합니다. 주: LIKE 작업은 지원되지 않습니다. 관리자는 쿼리에서 INTAINS를 사용해야 합니다. | addQuery('short_description', 'CONTAINS', '오류'); |
| 안에 | 쉼표를 허용하는 값의 맵을 가져오고 다른 요구 사항을 충족하는 기록 컬렉션을 수집합니다. select `* <table> from where short_description IN ('Error', 'Success', 'Failure')`으로 동작하며, 이는 `Select * from <table> where short_description='Error'`와 동일합니다. 예를 들어, 특정 활동에 속하는 모든 변수 값을 쿼리하려면 절을 IN 사용하고 해당 sys_ids 맵 또는 쉼표로 구분된 목록에 저장합니다. 그런 다음 변수 값 테이블을 쿼리하고 이 sys_ids 목록을 제공합니다. | addQuery('short_description', 'IN', '오류, 성공, 실패'); |
| 끝 | 필드는 제공된 값으로 끝나야 합니다. 오른쪽에 표시된 예는 <var class="keyword varname">short_description</var> 필드가 오류 텍스트로 끝나는 모든 기록을 반환합니다. | addQuery('short_description', 'ENDSWITH', '오류'); |
| 포함하지 않음 | 필드의 패턴과 일치하지 않는 기록을 선택합니다. 이 연산자는 빈 필드를 검색하지 않습니다. 빈 값의 경우 "비어 있음" 또는 "비어 있지 않음" 연산자를 사용합니다. 오른쪽에 표시된 예는 <var class="keyword varname">short_description</var> 필드에 "오류"라는 단어가 없는 모든 기록을 반환합니다. | addQuery('short_description', 'DOES NOT CONTAIN', 'ERROR'); |
| 다음에 없음 | 쉼표를 허용하는 값의 맵을 가져오고 다른 요구 사항을 충족하는 기록 컬렉션을 수집합니다. 다음과 같이 동작합니다. ` short_description NOT IN("오류")인 위치에서 *를 선택합니다<table>`. | addQuery('short_description', 'NOT IN', 'Error,Success,Failure'); |
| 인스턴스 | 확장 테이블에 대해 지정된 "클래스"의 기록만 검색하는 특수 연산자입니다. 오른쪽의 코드 예제에서는 컴퓨터로 분류되는 모든 구성 항목을 검색하는 방법을 보여 줍니다. | addQuery('sys_class_name', 'INSTANCEOF', 'cmdb_ci_computer'); |
[표 1. 사용 가능한 JavaScript 연산자]

{#r_AvailableJavaScriptOperators__table_pc2_kqj_2p}

필터 및 쿼리에 사용할 수 있는 연산자에 대한 자세한 내용은 다음 문서를 참조하십시오 [Operators available for filters and queries](https://www.servicenow.com/docs/access?context=r_OpAvailableFiltersQueries&version=australia&pubname=australia-platform-user-interface&ft:locale=en-US).  
NULL이거나 NULL이 아닌 데이터를 검색하는 데 사용할 수 있는 몇 가지 특수 메서드도 있습니다. <var class="keyword varname">short_description</var> 필드가 제공되지 않은(null임) 모든 인시던트를 검색하려면 다음 쿼리를 사용합니다.

    var target = new GlideRecord('incident'); 
    target.addNullQuery('short_description');
    target.query(); // Issue the query to the database to get all records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

<var class="keyword varname">short_description</var>가 제공된 모든 인시던트를 찾으려면 다음 쿼리를 사용합니다.

    var target = new GlideRecord('incident'); 
    target.addNotNullQuery('short_description');
    target.query(); // Issue the query to the database to get all records 
    while (target.next()) { 
      // add code here to process the incident record 
    }

GlideRecord API 및 사용 가능한 메서드에 대한 자세한 내용은 [GlideRecord](https://servicenow-prod.fluidtopics.net/PdjBDkljzRHVS4qRn2BIdw#c_GlideRecordScopedAPI "범위가 지정된 GlideRecord API는 데이터베이스 작업에 사용됩니다.") 문서를 참조하십시오.

## GlideRecord 쿼리 예시 {#ariaid-title3}

이 예는 다양한 GlideRecord 쿼리를 수행하는 방법을 보여줍니다.

### 쿼리

    var rec = new GlideRecord('incident');
    rec.query(); 
    while(rec.next()) { 
      gs.print(rec.number + ' exists'); }

### 업데이트

    var rec = new GlideRecord('incident');
    rec.addQuery('active',true);
    rec.query(); 
    while(rec.next()) { 
      rec.active = false;
      gs.print('Active incident ' + rec.number = ' closed');
      rec.update(); }

### 삽입

    var rec = new GlideRecord('incident');
    rec.initialize();
    rec.short_description = 'Network problem'; 
    rec.caller_id.setDisplayValue('Joe Employee'); 
    rec.insert();

### 삭제

    var rec = new GlideRecord('incident');
    rec.addQuery('active',false);
    rec.query(); 
    while(rec.next()) { 
      gs.print('Inactive incident ' + rec.number + ' deleted');
      rec.deleteRecord(); }

### 서비스 카탈로그 테이블 쿼리

서비스 카탈로그 요청 항목 테이블 \[sc_req_item\]의 변수를 직접 쿼리할 수는 없습니다. 대신, 변수 이름과 값에 대한 두 개의 쿼리를 추가하여 변수 소유권 테이블 \[sc_item_option_mtom\]을 쿼리합니다. 쿼리는 다대다 관계를 반환하며, 요청된 항목으로 닷워킹할 수 있습니다. 다음 예에서는 값이 <var class="keyword varname">item_value</var>인 변수 <var class="keyword varname">item_name</var>이 있는 요청 항목을 찾아 요청 항목 번호를 표시합니다.

    var now_GR = new GlideRecord('sc_item_option_mtom');
    gr.addQuery('sc_item_option.item_option_new.name','item_name');
    gr.addQuery('sc_item_option.value','item_value');
    gr.query();
     
    while(gr.next()) {
      gs.addInfoMessage(gr.request_item.number); }

자세한 내용은 [GlideRecord](https://servicenow-prod.fluidtopics.net/PdjBDkljzRHVS4qRn2BIdw#c_GlideRecordScopedAPI "범위가 지정된 GlideRecord API는 데이터베이스 작업에 사용됩니다.") 문서를 참조하십시오.

