Existe-t-il un moyen de sélectionner * sauf [noms de colonne x, y, z] dans BigQuery? Je vois quelques solutions pour MySQL mais je ne sais pas si cela s'applique à BQ.
Je vous remercie.
Rien dans le dialecte SQL BigQuery actuel ne le permet. Mais comme il s'agit d'une demande récurrente, nous avons ajouté un élément de travail pour prendre en charge
SELECT * EXCEPT (a, b, c) FROM ...
Mise à jour: Cette fonctionnalité est désormais disponible dans BigQuery standard SQL. Détails sur https://cloud.google.com/bigquery/sql-reference/enabling-standard-sql Exemple utilisant un tableau wikipedia public - sélectionnez toutes les colonnes sauf le titre et le commentaire:
select * except(title, comment) from publicdata.samples.wikipedia limit 10
En plus de la syntaxe SELECT * EXCEPT()
, il existe une syntaxe SELECT * REPLACE()
- toutes deux prises en charge avec SQL standard introduit
L'utilisation est simple et évidente selon la documentation
Ce qui est moins évident, c'est que vous pouvez utiliser les deux ensemble dans le même SELECT
, comme dans l'exemple ci-dessous
WITH orders AS
(SELECT 5 as order_id,
"sprocket" as item_name,
200 as quantity)
SELECT * EXCEPT (order_id) REPLACE ("widget" AS item_name), "more" as more_fields
FROM orders;