我有一个PRODUCTS
表,其中包含产品记录或子产品记录。子产品通过在HIGHERCATALOGID
列中具有条目来指示,而对于产品HIGHERCATALOGID
列为NULL。我试图编写一个查询,如果catalogid指向产品记录,则输出产品名称,如果catalogid指向子产品,则输出父产品的名称。这是我试图做的:CASE中的MySQL SELECT语句
SELECT p.catalogid, p.highercatalogid, oi.orderid
CASE
WHEN highercatalogid is null then cname\
ELSE
SELECT cname from products p1 where p.highercatalogid=p1.catalogid
END as name
FROM products p, oitems oi
WHERE p.catalogid=oi.catalogid
但是,这会导致错误。
错误代码:1064.您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的“情况下,当highercatalogid是空的商品P然后CNAME别的选择CNAME。”在第2行
什么是这样做的正确方法正确的语法手册?
谢谢!我不熟悉COALESCE运营商,这正是医生订购的。 – user3358413
@ user3358413如果这回答你的问题,最好是如果你接受答案,点击答案左上角的刻度标记 - 谢谢! –