SQL(BigQuery)中如何将SKU编号替换为对应产品名称?
正确实现SKU替换的SQL写法
你原来的WHERE子句是用来过滤行的,无法修改字段值,所以替换逻辑不生效。要把指定SKU换成对应产品名称,应该用CASE语句(或IF函数)结合原有的COALESCE逻辑来实现:
方法一:使用CASE语句
SELECT CASE WHEN product_code = 'SKU77417' THEN 'bed' WHEN product_code = 'SKU13351' THEN 'bookcase' ELSE COALESCE(product, product_code) END AS product_info FROM `myfirst-bigquery-project001.Customer_Data.Customer_purchase`
方法二:使用嵌套IF函数
SELECT IF(product_code = 'SKU77417', 'bed', IF(product_code = 'SKU13351', 'bookcase', COALESCE(product, product_code))) AS product_info FROM `myfirst-bigquery-project001.Customer_Data.Customer_purchase`
逻辑说明
- 优先检查
product_code是否为目标SKU,匹配则替换为对应名称 - 非目标SKU的行,继续用
COALESCE(product, product_code)提取非空的产品信息,保留原有逻辑 - 不需要WHERE子句,因为要保留所有在售产品行,仅修改特定SKU的字段值
内容的提问来源于stack exchange,提问作者Jhead3031
相关产品推荐
相关产品推荐

