Database-Recommendation
我正在使用 Amazon REDSHIIFT 並且想讓我的表數據不區分大小寫?
如何更改儲存在 REDSHIFT 中不區分大小寫的表數據?
例如:
Bell
,BELL
,bell
在查詢時應返回列中的所有行。
AFAIK,沒有辦法做到這一點。Redshift 不允許您設置特定的排序規則設置。要獲得 CI 行為,您必須始終將UPPER()或LOWER()添加到所有查詢中。
從技術上講,您可以在載入過程中進行這些大小寫轉換,並讓應用程序層在適當的情況下處理顯示數據。但是,我建議您不要嘗試,除非您確定您的 DW 永遠不會有必須區分大小寫的數據集(即源 Y 與 y 具有不同的含義/值)或處理不同情況的應用程序不同。在這些情況下,您已經在不知情的情況下有效地破壞了數據。
Redshift 現在具有排序規則設置,以允許從 2021 年 6 月 24 日起不區分大小寫。需要注意的是,除非數據庫為空,否則您無法更改數據庫的排序規則設置(根據他們的大數據部落格上的這篇文章)。
數據庫創建範例:
CREATE DATABASE database_name [ WITH ] [ COLLATE CASE_SENSITIVE | COLLATE CASE_INSENSITIVE ]
表創建範例:
CREATE TABLE T ( col1 Varchar(20) COLLATE case_insensitive );