首页 > 试题广场 >

Mysql中表student_table(id,name,b

[单选题]
Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1003' , NULL , '2002-05-20' , '男');
('1004' , '张三' , '2000-09-06' , '男');
('1005' , '李四' , '2001-12-01' , '女');
('1006' , NULL , '2001-12-02' , '女');
修改name字段为NULL的记录,是男生时设置name='男生姓名',是女生时设置name='女生姓名',如下SQL正确的是()?
 
  •  update student_table set name  = ( case when sex = '男' then '男生姓名' when sex = '女' then '女生姓名' end) if name is null ;
  •  update student_table when name is null set name  = ( case when sex = '男' then '男生姓名' when sex = '女' then '女生姓名') 
  • update student_table set name  = ( when sex = '男' then '男生姓名' when sex = '女' then '女生姓名') where name is null ;
  • update student_table set name  = ( case when sex = '男' then '男生姓名' when sex = '女' then '女生姓名' end) where name is null ;
when要和case一起使用
发表于 2021-12-24 12:49:52 回复(0)
case when ...end ,sql语句里面好像没有if这个判断。
发表于 2022-03-10 09:33:36 回复(2)
update用法:
update 表名1 set 字段名1=value1,字段名2=value2
where 条件表达式
case when的正确语法是: 
case when ... then ...( when ... then ... )else ... end,case和end不能缺少!
发表于 2022-05-23 16:57:30 回复(0)
case
when      then
wnen      then
...
end
发表于 2022-04-11 16:46:17 回复(0)
怎么没在sql 里面见过if
发表于 2023-07-26 08:09:28 回复(0)
update student_table set name = (case when sex = '男' then '男生姓名' when sex = '女' then '女生姓名' end)
where name is null;

发表于 2023-07-08 15:41:15 回复(0)
CASE WHEN ... THEN ... WHEN ... THEN ... WHEN ... THEN ... ELSE END
发表于 2023-03-26 17:46:07 回复(0)
为啥where name is null 不能放前面呢,如果B选项里多了一个end是不是可以了where放前面是对null值的判断,如果放后面感觉是多全部设置
发表于 2022-10-24 21:01:45 回复(1)
case when 条件1 then
         when 条件2 then
          ......
          else 
          end
                
发表于 2022-06-14 22:30:48 回复(2)
case
when  then
when  then
这样使用
发表于 2022-05-10 13:47:34 回复(0)
case when sex='男' then '男生姓名'
表示如果性别为男将名字改为男生姓名
发表于 2022-03-18 17:10:10 回复(0)