This page refers to the
case_sensitiveparameter that is part of an Explore.
case_sensitivecan also be used as part of a model, described on thecase_sensitive(for models) parameter documentation page.
case_sensitivecan also be used as part of a dimension, described on thecase_sensitive(for fields) parameter documentation page.
Usage
explore: explore_name {
case_sensitive: yes
}
|
Hierarchy
case_sensitive |
Default Value
yes, if the database dialect supports the parameter
Accepts
A Boolean (yes or no)
|
Definition
case_sensitive determines whether or not filters will be treated as case-sensitive on a given Explore. All filters related to the Explore are affected, including those added in the Explore UI, Dashboard UI, and filters parameter.
By default, case_sensitivity is on and filters are case-sensitive. However, some dialects do not support this parameter, as described in the case_sensitive is not supported by some SQL dialects section on this page.
case_sensitive works by adjusting the WHERE clause of the SQL that Looker generates. When case_sensitive is on, filters are expressed with = or LIKE, such as:
WHERE name = 'bob'
WHERE name LIKE '%bob%'
When case_sensitive is off, filters are expressed with ILIKE (or equivalent), such as:
WHERE name ILIKE 'bob'
Examples
Make all filters case-sensitive for the Product Explore:
explore: product {
case_sensitive: yes
}
Make all filters not case-sensitive for the Customer Explore:
explore: customer {
case_sensitive: no
}
Common challenges
case_sensitive is not supported by some SQL dialects
By default, case_sensitivity is on and filters are case-sensitive. If your SQL dialect doesn't support the case_sensitive parameter, case-sensitivity will vary according to your database setup, which will usually not be case-sensitive.
For Looker to support case_sensitive in your Looker project, your database dialect must also support it. The following table shows which dialects support case_sensitive in the latest release of Looker:
| Dialect | Supported? |
|---|---|
| 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 |
Things to know
You can create a case-sensitive search in MySQL
It is possible to create a case-sensitive search in MySQL, even though MySQL does not support the case_sensitive parameter. In MySQL, certain data types — called binary strings — store text as a series of numbers. The capitalization of the text makes a difference in the numbers that are used. Therefore, if you convert your text to a binary string, you can make searches that are case-sensitive. For example:
dimension: will_NOT_be_case_sensitive {
sql: ${TABLE}.something ;;
}
dimension: will_be_case_sensitive {
sql: CAST(${TABLE}.something AS BINARY) ;;
}