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. Çalışma alanı yöneticileri Bu özelliğe erişimi Önizlemeler sayfasından denetleyebilir. Bkz. Azure Databricks önizlemelerini yönetme.
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