我的案例类别未正确应用。您可以在此处看到,当这些曲目的节奏高于 120 时,它会为这些曲目分配节奏值“1”。我在 CASE WHEN 语句中定义“1”仅适用于节奏低于“40”
SELECT track_name, tempo,
CASE
WHEN tempo < '40' THEN '1'
WHEN tempo >= '40' AND tempo < '50' THEN '2'
WHEN tempo >= '50' AND tempo < '60' THEN '3'
WHEN tempo >= '60' AND tempo < '70' THEN '4'
WHEN tempo >= '70' AND tempo < '80' THEN '5'
WHEN tempo >= '80' AND tempo < '90' THEN '6'
WHEN tempo >= '90' AND tempo < '100' THEN '7'
WHEN tempo >= '100' AND tempo < '110' THEN '8'
WHEN tempo >= '110' AND tempo < '120' THEN '9'
WHEN tempo >= '120' AND tempo < '130' THEN '10'
WHEN tempo >= '130' AND tempo < '140' THEN '11'
WHEN tempo >= '140' AND tempo < '150' THEN '12'
ELSE NULL
END AS Pace
FROM unpopular_songs
;
检查 PACE 列的数据类型,可能是 char 数据类型,这就是字符串被修剪为长度 1 的原因。