Questa pagina si riferisce al parametro
case_sensitiveche fa parte di un'esplorazione.
case_sensitivepuò essere utilizzato anche nell'ambito di un modello, come descritto nella pagina della documentazione dedicata al parametrocase_sensitive(per i modelli).
case_sensitivepuò essere utilizzato anche nell'ambito di una dimensione, come descritto nella pagina della documentazione dedicata al parametrocase_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/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 AlloyDB for PostgreSQL | |
| 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 capitalizzazione del 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) ;;
}