自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
COLLATE 函數
COLLATE 函數會覆寫字串欄或運算式的定序。
如需如何使用資料庫定序建立資料表的資訊,請參閱CREATE TABLE。
如需如何使用資料庫定序建立資料庫的資訊,請參閱CREATE DATABASE。
語法
COLLATE(
string
, 'case_sensitive' | 'cs' | 'case_insensitive' | 'ci');
引數
- string
-
您要覆寫的字串欄或運算式。
- 'case_sensitive' | 'cs' | 'case_insensitive' | 'ci'
-
定序名稱的字串常數。Amazon Redshift 僅支援此參數的下列值:
case_sensitive
cs
case_insensitive
ci
case_sensitive 和 cs 可互換,並產生相同的結果。同樣地,不敏感的 case_insensitive 和 ci 是可互換的,並產生相同的結果。
傳回類型
COLLATE 函數傳回 VARCHAR
或 CHAR
,取決於第一個輸入運算式類型。此函數只會變更第一個輸入引數的定序,而不會變更其輸出值。
範例
若要建立資料表 T 並將資料表 T 中的 col1 定義為 case_sensitive
,請使用下列範例。
CREATE TABLE T ( col1 Varchar(20) COLLATE case_sensitive ); INSERT INTO T VALUES ('john'),('JOHN');
當您執行第一個查詢時,Amazon Redshift 只會傳回 john
。在 col1 上執行 COLLATE 函數之後,定序會變成 case_insensitive
。第二個查詢會傳回 john
和 JOHN
。
SELECT * FROM T WHERE col1 = 'john';
+------+ | col1 | +------+ | john | +------+
SELECT * FROM T WHERE COLLATE(col1, 'case_insensitive') = 'john';
+------+ | col1 | +------+ | john | | JOHN | +------+
若要建立資料表 A 並將資料表 A 中的 col1 定義為 case_insensitive
,請使用下列範例。
CREATE TABLE A ( col1 Varchar(20) COLLATE case_insensitive ); INSERT INTO A VALUES ('john'),('JOHN');
當您執行第一個查詢時,Amazon Redshift 會同時傳回 john
和 JOHN
。在 col1 上執行 COLLATE 函數之後,定序會變成 case_sensitive
。第二個查詢只會傳回 john
。
SELECT * FROM A WHERE col1 = 'john';
+------+ | col1 | +------+ | john | | JOHN | +------+
SELECT * FROM A WHERE COLLATE(col1, 'case_sensitive') = 'john';
+------+ | col1 | +------+ | john | +------+