Sql 对数据库表名使用CONCAT
我想Sql 对数据库表名使用CONCAT,sql,google-bigquery,Sql,Google Bigquery,我想concat以lastDay日期为字符串的表名,并得到这样的结果: dl推荐引擎:NDA_CHANEL_137002018.ga_sessions_20200128 昨天我找到了这条线 REPLACE(将日期子(DATE\u TRUNC(CURRENT\u DATE(),DAY),间隔1天)转换为字符串)、“-”和“”)I将其转换为字符串 但现在我不得不做了,但它不起作用 date, transaction.transactionId, ref.productSKU as productR
concat
以lastDay日期为字符串的表名,并得到这样的结果:
dl推荐引擎:NDA_CHANEL_137002018.ga_sessions_20200128
昨天我找到了这条线
REPLACE(将日期子(DATE\u TRUNC(CURRENT\u DATE(),DAY),间隔1天)转换为字符串)、“-”和“”)
I将其转换为字符串
但现在我不得不做了,但它不起作用
date,
transaction.transactionId,
ref.productSKU as productRef,
associated.productSKU as productAssociated,
ARRAY_LENGTH(hits.product) as nbProducts
FROM CONCAT("`dl-recommendation-engine:NDA_CHANEL_137002018.ga_sessions_",
REPLACE(CAST(DATE_SUB(DATE_TRUNC(CURRENT_DATE(), DAY), INTERVAL 1 DAY) as STRING), "-",""),
"`") as session,
UNNEST(hits) AS hits,
UNNEST(hits.product) as ref,
UNNEST(hits.product) as associated
AND hits.transaction.transactionId IS NOT NULL
AND ARRAY_LENGTH(hits.product) > 2```
为什么不使用_TABLE_后缀 我在此处删除了不必要的列,从而简化了查询:
SELECT *
FROM `dl-recommendation-engine:NDA_CHANEL_137002018.ga_sessions_*` as session,
WHERE
_TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
为什么不使用_TABLE_后缀 我在此处删除了不必要的列,从而简化了查询:
SELECT *
FROM `dl-recommendation-engine:NDA_CHANEL_137002018.ga_sessions_*` as session,
WHERE
_TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
如果不使用动态SQL执行查询,则无法执行此操作。如果不使用动态SQL执行查询,则无法执行此操作。是的,这是我最后所做的,非常感谢:)是的,这是我最后所做的,非常感谢:)