Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks Runtime 19.0 ve üzerini denetleyin
Important
Bu özellik Beta sürümündedir.
Belirlenen hedef ifadeler içindeki metin için büyük harf duyarsız bir arama yapar.
isearchaksi halde aynı davranışa sahip işlevinsearch büyük/küçük harfe duyarsız değişkenidir.
Syntax
isearch ( expr [, ...], search_pattern [, mode => mode] )
Arguments
-
expr: İçinde arama yapılacak ifadeler. -
search_pattern: Aranan metni gösteren sabitSTRINGbir ifade. -
mode: İsteğe bağlı. Eşleştirmenin nasıl yapılacağını kontrol eden, küçük harf duyarsızSTRINGbir literal. Geçerli değerler:'substring've'word'.'substring'varsayılan değerdir.
İadeler
BOOLEAN Arama deseninin herhangi bir diziyle arananabilir hedef ifadeyle eşleşip eşleşmediğini gösteren bir değer, harfi göz ardı ederek.
Notlar
Modda substring , arama deseni kelimenin tam anlamıyla eşleşir. , *, ve % gibi karakterler., düzenli ifade veya joker karakter olarak özel bir anlam taşımaz.
Aşağıdaki türler diziyle aranabilir:
| Türü | Diziyle aranabilir |
|---|---|
VOID, STRING, VARIANT |
Her zaman. |
ARRAY |
Çocuk ifadesi dize arananabilir. |
MAP |
Değer ifadesi diziyle aranabilir. |
STRUCT |
En az bir alan ifadesi diziyle aranabilir. |
İfadeler için STRUCT , isearch diziyle aranmayan alanları görmezden gelir.
İfadeler için VARIANT , isearch yalnızca veya tipli VOIDSTRINGyaprak düğümlerini tarar.
Bu ifade isearch ifadelere dolaylı olarak ifade dışıSTRINGSTRING ifade oluşturmaz.
Getiri değeri şu şekilde belirlenir:
-
NULLArama deseni iseNULL. -
truearama deseni en az bir diziyle aranabilir değerle eşleşiyorsa, vaka göz ardı edilir. -
NULLArama deseni herhangi bir dize aranabilir değerle eşleşmiyorsa ve bu değerlerden en az biri iseNULL. -
falseArama deseni herhangi bir diziyle arananabilir değerle eşleşmiyorsa ve bu değerlerin hiçbiri değilseNULL.
Mod için aşağıdaki değerler desteklenmektedir:
-
'substring': Arama deseni hedef değer içinde herhangi bir yerde görünürse ve harf göz ardı edilirse, eşleşir. Bu varsayılan seçenektir. -
'word': Arama deseni UAX#29 kelime sınırlarında kelimelere bölünür. Mod, arama desenindeki kelimelerle sıralarından bağımsız olarak eşleşir. Her desen kelimesi, UAX#29 kelime sınırları hemen önünde ve sonrasında yer alan değerde görünürse, harfi harf dikkate alınmadan bir dizi arama değeriyle eşleşir. Kelime içermeyen bir desen, örneğin'!!!'veya' ', yükseltmektedirSEARCH_INVALID_WORD_PATTERN.
Masadaki performans, isearch önceden oluşturulmuş tam metin arama indeksinden faydalanabilir. Detaylar için Unity Kataloğu yönetilen tablolardaki tam metin arama indekslerine bakınız.
Yaygın hata koşulları
- 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