如何根据两个字段之间的值比较生成结果集?

时间:2012-02-05 06:22:14

标签: mysql sql

我有下表

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>

2 个答案:

答案 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,否则返回昵称