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

在W3Schools测试库中按条件为ProductName添加星号的SQL方案

解决方案

导致报错的原因有两个,针对W3Schools测试数据库使用的Access SQL方言调整即可:

  • Access SQL不支持标准SQL的CASE WHEN语法,需要使用内置的IIF()函数实现分支逻辑
  • Access中字符串拼接必须用&运算符,+仅用于数值运算,用+拼接字符串会引发类型不匹配错误

修改后的完整SQL语句:

SELECT 
  IIF(Orders.ShipperID = 2, Products.ProductName & '*', Products.ProductName) AS ProductName,
  (Products.Price * OrderDetails.Quantity) AS TotalValue,
  Orders.OrderDate
FROM 
  ((OrderDetails INNER JOIN Products ON OrderDetails.ProductID = Products.ProductID) 
  INNER JOIN Orders ON OrderDetails.OrderID = Orders.OrderID)
WHERE 
  OrderDetails.ProductID IN (19, 20, 21, 68) 
  AND Orders.OrderDate <= #12/31/1996#;

核心调整点

  1. 替换CASE为IIF:IIF(判断条件, 满足条件的返回值, 不满足条件的返回值)是Access SQL的分支判断写法
  2. 替换+为&:用&连接字符串和星号,确保文本能正确拼接,避免类型错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:40:52