本頁面是指 探索中的
case_sensitive參數。
case_sensitive也可做為模型的一部分,詳情請參閱case_sensitive(適用於模型) 參數說明文件頁面。
case_sensitive也可做為維度的一部分,詳情請參閱case_sensitive(適用於欄位) 參數說明頁面。
用量
explore: explore_name {
case_sensitive: yes
}
|
階層
case_sensitive |
預設值
yes (如果資料庫方言支援該參數)
接受
布林值 (yes 或 no)
|
定義
case_sensitive 可決定特定「探索」中的篩選器是否區分大小寫。與「探索」相關的所有篩選器都會受到影響,包括在「探索」使用者介面、「資訊主頁」使用者介面和 filters 參數中新增的篩選器。
根據預設,case_sensitivity 為開啟狀態,且篩選器會區分大小寫。不過,部分方言不支援這個參數,詳情請參閱本頁的「case_sensitive 不支援部分 SQL 方言」一節。
case_sensitive 的運作方式是調整 Looker 產生的 SQL 的 WHERE 子句。case_sensitive 啟用時,篩選器會以 = 或 LIKE 表示,例如:
WHERE name = 'bob'
WHERE name LIKE '%bob%'
如果 case_sensitive 處於關閉狀態,篩選器會以 ILIKE (或同等項目) 表示,例如:
WHERE name ILIKE 'bob'
範例
為「產品」探索設定所有區分大小寫的篩選器:
explore: product {
case_sensitive: yes
}
讓「客戶」探索的所有篩選器都不區分大小寫:
explore: customer {
case_sensitive: no
}
常見挑戰
部分 SQL 方言不支援 case_sensitive
根據預設,case_sensitivity 為開啟狀態,且篩選器會區分大小寫。如果 SQL 方言不支援 case_sensitive 參數,大小寫區分方式會因資料庫設定而異,但通常不會區分大小寫。
如要讓 Looker 支援 Looker 專案中的 case_sensitive,資料庫方言也必須支援。下表列出最新版 Looker 支援 case_sensitive 的方言:
| 方言 | 是否支援? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
注意事項
您可以在 MySQL 中建立區分大小寫的搜尋
即使 MySQL 不支援 case_sensitive 參數,您仍可在 MySQL 中建立區分大小寫的搜尋。在 MySQL 中,某些資料類型 (稱為二進位字串) 會將文字儲存為一系列數字。文字大小寫會影響使用的數字。因此,如果將文字轉換為二進位字串,就能進行區分大小寫的搜尋。例如:
dimension: will_NOT_be_case_sensitive {
sql: ${TABLE}.something ;;
}
dimension: will_be_case_sensitive {
sql: CAST(${TABLE}.something AS BINARY) ;;
}