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

标签 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作为他们的全名?

最佳答案

如果“无昵称”意味着昵称为NULL,那么您可以使用COALESCE :

select id, coalesce(nickname, full_name) as new_name
from your_table

如果“无昵称”表示为空字符串,则:

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

关于mysql - 如何根据两个字段之间的值比较生成结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9147360/

相关文章:

mysql - WordPress SQL语句排除某些类别

MYSQL如何排除两个不同日期之间的工作日

MySQL 搜索与用户输入的搜索字符串相匹配的文章

mysql - MySQL中图像数据的数据类型

MySQL - 嵌入式选择 - 如何将行放入列中?

php - 组织一个多用户数据库网站

php - 为什么不在此代码中插入多个数据

c++ - QSqlQuery::value: 未定位在有效记录上

MySQL 错误 - #1932 - 引擎中不存在表 'phpmyadmin.pma user config'

sql - 如何在 SQL Server 中删除或截断表?