You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中使用IN子句替换艺术家姓氏?作业问题求助

问题分析与解决

你的代码没有返回数据的核心原因是多添加了错误的筛选条件:AND LastName IN ('NA')。这行条件会强制只返回姓氏本身就是'NA'的记录,但你的需求是把无姓氏(比如NULL/空字符串)的记录替换为'NA',不是筛选这类记录,所以导致没有匹配结果。

正确的SQL写法

场景1:无姓氏为NULL值

使用COALESCE函数直接将NULL值替换为'NA':

SELECT 
  FirstName,
  COALESCE(LastName, 'NA') AS LastName
FROM mArtist
WHERE HomeCountry IN ('Canada', 'UK')

场景2:无姓氏为NULL或空字符串

如果数据表中存在姓氏为空字符串('')的情况,用CASE语句覆盖两种异常场景:

SELECT 
  FirstName,
  CASE 
    WHEN LastName IS NULL OR LastName = '' THEN 'NA'
    ELSE LastName
  END AS LastName
FROM mArtist
WHERE HomeCountry IN ('Canada', 'UK')

关键说明

  • 务必移除WHERE子句中AND LastName IN ('NA')的错误条件,仅保留HomeCountry IN ('Canada', 'UK')即可完成国家筛选
  • COALESCE函数的作用是返回参数列表中第一个非NULL的值,适合快速处理NULL替换需求
  • CASE语句更灵活,能覆盖空字符串、特定无效值等多种异常情况

内容的提问来源于stack exchange,提问作者user20166753

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:43:19