Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik:ellenőrizze, hogy
a Databricks Runtime 19.0-s vagy újabb verziója
Important
Ez a funkció bétaverzióban érhető el. A munkaterület rendszergazdái az Előnézetek lapon szabályozhatják a funkcióhoz való hozzáférést. Lásd: Az Azure Databricks előzetes verziójának kezelése.
Kis- és nagybetűs keresést végez a megadott célkifejezéseken belüli szöveg számára.
isearchaz egyébként azonos működésű függvény kis- és nagybetűket nem érzéketlen változatasearch.
Syntax
isearch ( expr [, ...], search_pattern [, mode => mode] )
Arguments
-
expr: Az arckifejezések, amelyeket bennük kell keresni. -
search_pattern: Egy állandóSTRINGkifejezés, amely a keresett szöveget jelzi. -
mode:Szabadon választható. Egy kis- ésSTRINGnagybetűs literal, amely szabályozza, hogyan végzik a párosítást. Az érvényes értékek a következők:'substring'és'word'. Az alapértelmezett érték a'substring'.
Returns
Egy BOOLEAN érték, amely jelzi, hogy a keresési minta egyezik-e bármilyen string által kereshető célkifejezéssel, figyelmen kívül hagyva a case-et.
Megjegyzések:
A substring módban a keresési minta szó szerint egyezik. Az olyan karaktereknek, mint ., *, és % nincs különleges jelentésük reguláris kifejezésként vagy vadkártya karakterként.
A következő típusok láncsorral kereshetők:
| Típus | Láncsor-keresés, amikor |
|---|---|
| \ |
Mindig. |
ARRAY |
A gyermek kifejezése string-kereshető. |
MAP |
Az értékkifejezése string alapján kereshető. |
STRUCT |
Legalább az egyik mezőkifejezése string alapján kereshető. |
Kifejezéseknél STRUCT figyelmen isearch kívül hagyja azokat a mezőket, amelyek nem string által kereshetők.
Az VARIANT kifejezések isearch esetén csak azok levélcsomópontjait vizsgálja, amelyek típusúak VOID vagy STRING.
A isearch kifejezés nem implicitSTRING módon nem kifejezéseket ad az STRING kifejezésekbe.
A hozamérték a következőképpen határozható meg:
-
NULLha a keresési minta .NULL -
trueha a keresési minta legalább egy string által kereshető értéket egyezik, figyelmen kívül hagyva esetet. -
NULLha a keresési minta nem egyezik meg egyetlen string által kereshető értékkel, és legalább az egyik ilyen érték .NULL -
falseha a keresési minta nem egyezik meg egyetlen string által kereshető értékkel, és egyik sem az érték.NULL
Az alábbi értékek támogatottak a módban:
-
'substring': Egyezik, ha a keresési minta megjelenik a célértéken belül, figyelmen kívül hagyva az esetet. Ez az alapértelmezett beállítás. -
'word': A keresési minta az UAX#29 szóhatároknál szavakra van osztva. A mód illeszkedik az egyes szavakhoz a keresési mintában, függetlenül azok sorrendjétől. Minden mintaszó megegyezik egy string által kereshető értékkel, ha az UAX#29 szóhatárokkal közvetlenül előtte és után jelenik meg, figyelmen kívül hagyva a case-et. Egy olyan minta, amely nem tartalmaz szavakat, mint'!!!'például vagy' ', emeliSEARCH_INVALID_WORD_PATTERNa -t .
Az isearch asztalon látható teljesítmény előnyt jelenthet egy előre összeszerelt, teljes szöveges keresési index. Részletekért lásd a teljes szöveges keresési indexeket a Unity Catalog menedzselt tábláin .
Gyakori hibafeltételek
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- NOT_ENOUGH_ARGS
- SEARCH_INVALID_WORD_PATTERN
- SEARCH_STAR_ARGUMENT_NOT_ALLOWED
Examples
-- Basic examples.
-- Substring mode (default).
> SELECT isearch(column, 'needle', mode => 'substring') FROM VALUES ('Needle') AS table(column);
true
> SELECT isearch(column, 'quick fox', mode => 'substring') FROM VALUES ('quick brown fox') AS table(column);
false
> SELECT isearch(column, 'FOO.BAR', mode => 'substring') FROM VALUES ('prefix foo.bar suffix') AS table(column);
true -- the period is matched literally, and letter case is ignored.
> SELECT isearch(column, 'FOO.BAR', mode => 'substring') FROM VALUES ('prefix fooXbar suffix') AS table(column);
false -- the period does not match an arbitrary character.
> SELECT isearch(column, '100%', mode => 'substring') FROM VALUES ('100 percent'), ('100%') AS table(column);
false
true -- the percent sign is not a wildcard.
> SELECT isearch(column, lower('NEEDLE')) FROM VALUES ('needle') AS table(column);
true
-- Non-ASCII case-insensitive matching.
> SELECT isearch(column, 'κόσμος', mode => 'substring') FROM VALUES ('ΚΌΣΜΟΣ') AS table(column);
true
> SELECT isearch(column, 'οσ', mode => 'substring') FROM VALUES ('ΟΣ') AS table(column);
true -- sigma folding (`σ` and final `ς`).
-- Word mode.
> SELECT isearch(column, 'fox quick', mode => 'word') FROM VALUES ('Quick Brown Fox') AS table(column);
true
> SELECT isearch(column, 'slow fox', mode => 'word') FROM VALUES ('quick fox') AS table(column);
false
> SELECT isearch(column, 'FOO*BAR', mode => 'word') FROM VALUES ('bar and foo') AS table(column);
true -- the asterisk separates the pattern words; it is not a wildcard.
-- Examples on a table with a VARIANT column.
> CREATE TABLE test_table AS
SELECT parse_json('{
"role": "user",
"id": 101,
"preferences": {"theme": "dark", "language": "en"}
}') AS column;
> SELECT isearch(column, 'USER', mode => 'substring') FROM test_table;
true
> SELECT isearch(column, 'PREFERENCES', mode => 'substring') FROM test_table;
false -- only values are searched.
> SELECT isearch(column, '101', mode => 'substring') FROM test_table;
false -- no implicit cast to string.
-- NULL behavior.
> SELECT isearch(NULL, 'needle', mode => 'substring');
NULL
> SELECT isearch(CAST(NULL AS STRING), 'needle', mode => 'substring');
NULL
> SELECT isearch(CAST(NULL AS INT), 'needle', mode => 'substring');
false
> SELECT isearch('needle in haystack', NULL, mode => 'substring');
NULL
-- Search across multiple columns.
> SELECT isearch(column1, column2, '123', mode => 'substring')
FROM VALUES (123, 'needle in haystack') AS table(column1, column2);
false -- integer column is skipped, no implicit cast to string.
> SELECT isearch(column1, column2, 'NEEDLE', mode => 'substring')
FROM VALUES (123, 'needle in haystack') AS table(column1, column2);
true