gpt4 book ai didi

mysql - sql姓氏逗号第一个空检查

转载 作者:行者123 更新时间:2023-11-29 04:22:48 24 4
gpt4 key购买 nike

我在数据库中有三列,分别代表一个人的名字、中间名和姓氏:

            People
|------------------------------------------|
| First_Name | Last_name | Middle_name|
|------------------------------------------|
| John | Hansen | T |
| NULL | Smith | NULL |
| Jacob | NULL | J |
| Michael | Johnson | NULL |
|------------------------------------------|

获得 null 安全姓氏、名字 + 中间名的最佳方法是什么。所以从上面的列表中我会得到:

Hansen, John T
Smith
Jacob J
Johnson, Michael

到目前为止我有:

select concat_ws(', ', name_last, concat_ws(' ', name_first, name_middle)) as name from entity;

但它给了我尾随 , 我不想要它们的地方。

最佳答案

如果任何参数为 NULL,您可以使用 CONCAT 将返回 NULL 的事实:

SELECT COALESCE(CONCAT(last_name, ', ', first_name), last_name, first_name)
FROM People

SQL Fiddle Demo


或者,既然您已编辑问题以添加 Middle_name 列:

SELECT COALESCE(CONCAT(last_name, ', ', COALESCE(CONCAT(first_name, ' ', middle_name),first_name,middle_name)), 
last_name,
COALESCE(CONCAT(first_name, ' ', middle_name),first_name,middle_name))
FROM People

SQL Fiddle Demo

关于mysql - sql姓氏逗号第一个空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18906783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com