Oracle CASE 和 BOOLEAN 数值表达式
Oracle CASE and BOOLEAN Numeric Expressions
不确定为什么这不起作用...似乎 a >= b 是一个布尔表达式。 RDMS 抱怨“>=3”说 "missing keyword"。我遵循语法 here
这个有效:
WHEN count(movie_num) 3 THEN 'Most Popular'
这不是:
WHEN count(movie_num) >=3 THEN 'Most Popular'
可能遗漏了一些明显的东西,如果是这样,我深表歉意。
完整查询
select movie_genre as "Movie Genre",
count(movie_num) as "Number of Movies",
CASE count(movie_num)
WHEN count(movie_num) >=3 THEN 'Most Popular'
WHEN count(movie_num) >= 2 THEN 'Popular'
ELSE 'Normal' END AS "Popularity Rating"
from movie
group by movie_genre
order by count(movie_num) desc;
试试这个,
将 CASE (movie_num) WHEN count(movie_num) 更改为 CASE WHEN count(movie_num)
select movie_genre as "Movie Genre",
count(movie_num) as "Number of Movies",
CASE WHEN count(movie_num) >=3 THEN 'Most Popular'
WHEN count(movie_num) >= 2 THEN 'Popular'
ELSE 'Normal' END AS "Popularity Rating"
from movie
group by movie_genre
order by count(movie_num) desc;
根据您的情况,您可以重写它以使用 simple-case expression:
select movie_genre as "Movie Genre",
count(movie_num) as "Number of Movies",
CASE count(movie_num)
WHEN 0 THEN 'Normal'
WHEN 1 THEN 'Normal'
WHEN 2 THEN 'Popular'
ELSE 'Most Popular'
END AS "Popularity Rating"
from movie
group by movie_genre
order by count(movie_num) desc;
不确定为什么这不起作用...似乎 a >= b 是一个布尔表达式。 RDMS 抱怨“>=3”说 "missing keyword"。我遵循语法 here
这个有效:
WHEN count(movie_num) 3 THEN 'Most Popular'
这不是:
WHEN count(movie_num) >=3 THEN 'Most Popular'
可能遗漏了一些明显的东西,如果是这样,我深表歉意。
完整查询
select movie_genre as "Movie Genre",
count(movie_num) as "Number of Movies",
CASE count(movie_num)
WHEN count(movie_num) >=3 THEN 'Most Popular'
WHEN count(movie_num) >= 2 THEN 'Popular'
ELSE 'Normal' END AS "Popularity Rating"
from movie
group by movie_genre
order by count(movie_num) desc;
试试这个,
将 CASE (movie_num) WHEN count(movie_num) 更改为 CASE WHEN count(movie_num)
select movie_genre as "Movie Genre",
count(movie_num) as "Number of Movies",
CASE WHEN count(movie_num) >=3 THEN 'Most Popular'
WHEN count(movie_num) >= 2 THEN 'Popular'
ELSE 'Normal' END AS "Popularity Rating"
from movie
group by movie_genre
order by count(movie_num) desc;
根据您的情况,您可以重写它以使用 simple-case expression:
select movie_genre as "Movie Genre",
count(movie_num) as "Number of Movies",
CASE count(movie_num)
WHEN 0 THEN 'Normal'
WHEN 1 THEN 'Normal'
WHEN 2 THEN 'Popular'
ELSE 'Most Popular'
END AS "Popularity Rating"
from movie
group by movie_genre
order by count(movie_num) desc;