我有一张称为歌曲的小桌子(8行),我需要选择所有少于3分钟46秒的歌曲的标题和长度。歌曲最长可以是3分45秒。
我以前尝试过:
SELECT title, length FROM songs WHERE minutes <= 3 AND seconds < 46;
但是此命令省略了标题为《一种魔法》的歌曲,该歌曲长度为2分59秒。
我认为此SELECT查询可能需要一个CASE表达式,但无法弄清楚如何使其正常工作而不会出错。
答案 0 :(得分:1)
这是您的查询。只需将您的分钟数转换为seconds
。
SELECT title, length FROM songs WHERE ((minutes * 60) + seconds) <= (3 * 60) + 46;
或
SELECT title, length FROM songs WHERE ((minutes * 60) + seconds) <= 240; --in seconds
答案 1 :(得分:0)
您的查询未找到该歌曲,因为它的“ seconds”列的值为59,该值大于46,从而使第二个条件为假。
数据库无法理解“分钟”和“秒”之间的关系,因此您必须通过
之类的命令来明确定义该关系。SELECT title, length
FROM songs
WHERE ((minutes * 60) + seconds) < 226;