所以我有这个正在使用的表,并创建了一个附加列(B 列)来区分某些值。 A 列是整数,我尝试使用 CASE 函数来识别它们各自的名称,然后将它们插入到 B 列中。我以为我的代码是正确的,但当我查询时它声称成功,但在 B 列中仅返回空值.我哪里出错了?
这是我当前的代码:
INSERT INTO astro(star_name)
SELECT
CASE star_type
WHEN 0 THEN 'Brown'
WHEN 1 THEN 'Red_Dwarf'
WHEN 2 THEN 'White_Dwarf'
WHEN 3 THEN 'Main_Sequence'
WHEN 4 THEN 'Supergiant'
WHEN 5 THEN 'Hellagiant'
ELSE 'Basic'
END
FROM astro
我期望 star_name 返回相应的名称,但相反,我只得到了一大堆奇怪的空值:/ 我感谢您的帮助社区,谢谢!
您应该使用 UPDATE 来更改现有行。
UPDATE astro
SET star_name = CASE star_type
WHEN 0 THEN 'Brown'
WHEN 1 THEN 'Red_Dwarf'
WHEN 2 THEN 'White_Dwarf'
WHEN 3 THEN 'Main_Sequence'
WHEN 4 THEN 'Supergiant'
WHEN 5 THEN 'Hellagiant'
ELSE 'Basic'
END
参见:DBFIDDLE