case_sensitive (per le esplorazioni)

Questa pagina si riferisce al parametro case_sensitive che fa parte di un'esplorazione.

case_sensitive può essere utilizzato anche nell'ambito di un modello, come descritto nella pagina della documentazione dedicata al parametro case_sensitive (per i modelli).

case_sensitive può essere utilizzato anche nell'ambito di una dimensione, come descritto nella pagina della documentazione dedicata al parametro case_sensitive (per i campi).

Utilizzo

explore: explore_name {
  case_sensitive: yes
}
Gerarchia
case_sensitive
Valore predefinito
yes, se il dialetto del database supporta il parametro

Accetta
Un valore booleano (yes o no)

Definizione

case_sensitive determina se i filtri verranno trattati come sensibili alle maiuscole e minuscole in una determinata esplorazione. Tutti i filtri correlati all'esplorazione sono interessati, inclusi quelli aggiunti nell'interfaccia utente dell'esplorazione, nell'interfaccia utente della dashboard e nel parametro filters.

Per impostazione predefinita, l'opzione case_sensitivity è attiva e i filtri sono sensibili alle maiuscole. Tuttavia, alcuni dialetti non supportano questo parametro, come descritto nella sezione case_sensitive non è supportato da alcuni dialetti SQL di questa pagina.

case_sensitive funziona modificando la clausola WHERE dell'SQL generato da Looker. Quando case_sensitive è attivo, i filtri vengono espressi con = o LIKE, ad esempio:

WHERE name = 'bob'
WHERE name LIKE '%bob%'

Quando case_sensitive è disattivato, i filtri vengono espressi con ILIKE (o equivalente), ad esempio:

WHERE name ILIKE 'bob'

Esempi

Rendi tutti i filtri sensibili alle maiuscole e minuscole per l'esplorazione Prodotto:

explore: product {
  case_sensitive: yes
}

Rendi tutti i filtri non sensibili alle maiuscole per l'esplorazione Cliente:

explore: customer {
  case_sensitive: no
}

Sfide comuni

case_sensitive non è supportato da alcuni dialetti SQL

Per impostazione predefinita, l'opzione case_sensitivity è attiva e i filtri sono sensibili alle maiuscole. Se il tuo dialetto SQL non supporta il parametro case_sensitive, la distinzione tra maiuscole e minuscole varia a seconda della configurazione del database, che di solito non fa distinzione tra maiuscole e minuscole.

Affinché Looker supporti case_sensitive nel tuo progetto Looker, deve supportarlo anche il dialetto del database. La tabella seguente mostra quali dialetti supportano case_sensitive nell'ultima release di Looker:

Dialetto Supportata?
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

Cose da sapere

Puoi creare una ricerca sensibile alle maiuscole in MySQL

È possibile creare una ricerca sensibile alle maiuscole e minuscole in MySQL, anche se MySQL non supporta il parametro case_sensitive. In MySQL, alcuni tipi di dati, chiamati stringhe binarie, memorizzano il testo come una serie di numeri. La distinzione tra maiuscole e minuscole nel testo fa la differenza nei numeri utilizzati. Pertanto, se converti il testo in una stringa binaria, puoi eseguire ricerche sensibili alle maiuscole. Ad esempio:

dimension: will_NOT_be_case_sensitive {
  sql: ${TABLE}.something ;;
}

dimension: will_be_case_sensitive {
  sql: CAST(${TABLE}.something AS BINARY) ;;
}