search 연산자
여러 테이블 및 열에서 텍스트 패턴을 검색합니다.
참고
검색하려는 특정 테이블 및 열을 알고 있는 경우 공용 구조체 및 위치 연산자를 사용하는 것이 더 성능이 좋습니다. search
많은 수의 테이블과 열에서 검색할 때 연산자가 느려질 수 있습니다.
Syntax
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | 형식 | 필수 | 설명 |
---|---|---|---|
T | string |
테이블 이름, 공용 구조체 연산자 또는 테이블 형식 쿼리 결과와 같이 검색할 테이블 형식 데이터 원본입니다. TableSources와 함께 표시할 수 없습니다. | |
CaseSensitivity | string |
대/소문자 구분과 관련하여 와 같은 has 모든 string 스칼라 연산자의 동작을 제어하는 플래그입니다. 유효한 값은 , , case_sensitive case_insensitive 입니다default . 기본 동작은 대/소문자를 구분하지 않으므로 및 옵션은 default case_insensitive 동의어입니다. |
|
TableSources | string |
검색에 참여할 "와일드카드" 테이블 이름의 쉼표로 구분된 목록입니다. 목록에는 공용 구조체 연산자 목록과 동일한 구문이 있습니다. TabularSource와 함께 표시할 수 없습니다. | |
SearchPredicate | string |
✔️ | 입력의 모든 레코드에 대해 평가할 부울 식입니다. 가 반환 true 되면 레코드가 출력됩니다. 검색 조건자 구문을 참조하세요. |
검색 조건자 구문
SearchPredicate를 사용하면 테이블의 모든 열에서 특정 용어를 검색할 수 있습니다. 검색 용어에 적용할 연산자는 다음 표와 같이 용어의 와일드카드 별표(*
)의 존재 및 배치에 따라 달라집니다.
리터럴 | 연산자 |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
검색을 특정 열로 제한하거나, 용어 일치 대신 정확한 일치 항목을 찾거나, 정규식을 기준으로 검색할 수도 있습니다. 이러한 각 사례에 대한 구문은 다음 표에 나와 있습니다.
Syntax | 설명 |
---|---|
Columnname: StringLiteral |
이 구문을 사용하여 검색을 특정 열로 제한할 수 있습니다. 기본 동작은 모든 열을 검색하는 것입니다. |
Columnname== StringLiteral |
이 구문을 사용하여 문자열 값에 대한 열의 정확한 일치 항목을 검색할 수 있습니다. 기본 동작은 용어 일치를 찾는 것입니다. |
열matches regex StringLiteral |
이 구문은 StringLiteral 이 정규식 패턴인 정규식 일치를 나타냅니다. |
부울 식을 사용하여 조건을 결합하고 더 복잡한 검색을 만듭니다. 예를 들어 는 "error" and x==123
열에 용어 error
가 있고 열의 값 123
이 있는 레코드를 검색합니다 x
.
참고
TabularSource와 TableSources를 모두 생략하면 검색은 scope 데이터베이스의 모든 무제한 테이블 및 뷰를 통해 전달됩니다.
검색 조건자 구문 예제
# | Syntax | 의미(해당 where ) |
의견 |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union T1,T2,A* | 여기서 * 에는 "err"이 있습니다. |
|
3 | search col:"err" |
where col has "err" |
|
4 | search col=="err" |
where col=="err" |
|
5 | search "err*" |
where * hasprefix "err" |
|
6 | search "*err" |
where * hassuffix "err" |
|
7 | search "*err*" |
where * contains "err" |
|
8 | search "Lab*PC" |
where * matches regex @"\bLab.*PC\b" |
|
9 | search * |
where 0==0 |
|
10 | search col matches regex "..." |
where col matches regex "..." |
|
11 | search kind=case_sensitive |
모든 문자열 비교는 대/소문자를 구분합니다. | |
12 | search "abc" and ("def" or "hij") |
where * has "abc" and (* has "def" or * has hij") |
|
13 | search "err" or (A>a and A<b) |
where * has "err" or (A>a and A<b) |
설명
find 연산자와 달리 연산자는 search
다음을 지원하지 않습니다.
withsource=
: 출력에는 항상 값이 각 레코드가 검색된 테이블 이름인 형식string
의 열$table
(또는 원본이 테이블이 아니라 복합 식인 경우 시스템 생성 이름)이 포함됩니다.project=
,project-smart
: 출력 스키마는 출력 스키마와project-smart
동일합니다.
예제
전역 용어 검색
scope 데이터베이스의 모든 무제한 테이블 및 뷰에서 용어를 검색합니다.
search "Green"
출력에는 , Products
및 SalesTable
테이블의 레코드가 Customers
포함됩니다. 레코드는 Customers
성 "녹색"을 가진 모든 고객을 표시하고 Products
및 SalesTable
레코드는 "녹색"의 일부 멘션 있는 제품을 표시합니다.
조건부 전역 용어 검색
scope 데이터베이스의 모든 무제한 테이블 및 뷰에서 두 용어와 일치하는 레코드를 검색합니다.
search "Green" and ("Deluxe" or "Proseware")
특정 테이블 검색
테이블에서만 검색합니다 Customers
.
search in (Products) "Green"
대/소문자 구분 검색
scope 데이터베이스의 모든 무제한 테이블 및 뷰에서 대/소문자를 구분하는 용어와 일치하는 레코드를 검색합니다.
search kind=case_sensitive "blue"
특정 열 검색
scope 데이터베이스의 모든 무제한 테이블 및 뷰에서 "FirstName" 및 "LastName" 열에서 용어를 검색합니다.
search FirstName:"Aaron" or LastName:"Hughes"
타임스탬프별 검색 제한
해당 용어가 지정된 날짜보다 큰 날짜가 있는 레코드에 표시되는 경우 scope 데이터베이스의 모든 무제한 테이블 및 뷰에서 용어를 검색합니다.
search "Hughes" and DateKey > datetime('2009-01-01')
성능 팁
# | 팁 | Prefer | 위 |
---|---|---|---|
1 | 여러 연속 search 연산자보다 단일 search 연산자를 사용하는 것이 좋습니다. |
search "billg" and ("steveb" or "satyan") |
검색 "billg" | 검색 "steveb" 또는 "satyan" |
2 | 연산자 내에서 필터링하는 것이 좋습니다.search |
search "billg" and "steveb" |
search * | 여기서 * 에는 "billg"가 있고 * 에는 "steveb"가 있습니다. |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기