我有下表
id full_name nickname
1 Jennifer Jen
2 Jerome
3 James
4 Jeremiah J
5 Geoffrey Jeff
我正在努力建立一个名单,这样如果学生有昵称,那么他们只会这样昵称。
id new_name
1 Jen
2 Jerome
3 James
4 J
5 Jeff
我可以在原始表上使用什么查询来生成一个结果集,如果他们有一个new_name
作为学生的昵称,并且new_name
作为他们的全名? / p>
答案 0 :(得分:2)
如果“没有昵称”表示nickname
为NULL,那么您可以使用COALESCE:
select id, coalesce(nickname, full_name) as new_name
from your_table
如果“no nickname”表示为空字符串,则:
select id,
case nickname when '' then full_name else nickname end
from your_table
如果你可以是空字符串或NULL:
select id,
case coalesce(nickname, '') when '' then full_name else nickname end
from your_table
答案 1 :(得分:0)
您可以使用mysql control flow function IFNULL
SELECT id, IFNULL(nickName, full_name) as new_name FROM your_table
如果nickname为null,则返回full_name,否则返回昵称