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执行查询,则无法执行此操作。是的,这是我最后所做的,非常感谢:)是的,这是我最后所做的,非常感谢:)