select *,'example' AS species
from top_half
inner join bottom_half
on top_half.id = bottom_half.id
order by species(
CASE
WHEN heads > arms THEN species.example = 'beast'
when tails > legs then species.example = 'beast'
else species.example = 'weirdo'
END
);我收到以下错误:
SQL查询出现了一个错误:
PG::UndefinedTable: ERROR:表“物种”的-子句条目缺失第2行:当species.example =‘猛兽’时,SQL查询出现了一个错误: PG::未定义表:错误:表“物种”的-子句条目缺失,第2行:当头>臂时,species.example =‘猛兽’
如何解决这个问题?
codewars.com/kata/sql-basics-monsters-using-case/train/sql
我正试着解决上面的问题。
指令 您可以访问两个名为top_half和bottom_half的表,如下所示: top_half模式
bottom_half模式
必须按照以下格式返回格式的表:
输出模式
表上的ID匹配成一个完整的怪物。对于正面、手臂、腿和尾巴,你需要从每个表格中画出数据。
对物种来说,如果怪物的头部比手臂多,尾巴比腿多,那它就是“野兽”,否则就是“怪人”。这需要在物种列中捕捉到。
所有行都应返回(10)。
测试需要用用例。按物种排序。
请使用纯SQL,只在Ruby中进行测试。
发布于 2017-09-16 06:32:37
对物种来说,如果怪物的头部比手臂多,尾巴比腿多,那它就是“野兽”,否则就是“怪人”。这需要在物种列中捕捉到。
你得转移案子..。何时对SELECT子句。
select *,
CASE
WHEN heads > arms THEN 'beast'
when tails > legs then 'beast'
else 'weirdo'
END As Species
from top_half
inner join ....
.....测试需要用用例。按物种排序。
使用此条款:
....
ORDER BY species或者这个:
.......
ORDER BY
CASE
WHEN heads > arms THEN 'beast'
when tails > legs then 'beast'
else 'weirdo'
END发布于 2017-09-16 06:48:46
合并:
SELECT *, CASE WHEN heads > arms OR tails > legs THEN text 'BEAST'
ELSE 'WEIRDO' END AS species
FORM top_half
JOIN bottom_half USING (id)
ORDER BY species;发布于 2019-10-23 03:11:11
select t.id,t.heads, b.legs,t.arms,b.tails,
CASE
WHEN t.heads > t.arms THEN 'BEAST'
WHEN b.tails > b.legs THEN 'BEAST'
ELSE 'WEIRDO'
END as species
from top_half t
join bottom_half b
ON t.id = b.id
ORDER BY species https://stackoverflow.com/questions/46250500
复制相似问题