Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接同一表的两列,忽略空值。MySql_Mysql_Sql - Fatal编程技术网

连接同一表的两列,忽略空值。MySql

连接同一表的两列,忽略空值。MySql,mysql,sql,Mysql,Sql,我试图连接同一个表的两列,但是,如果有空值(在我的例子中,它们在第二列中),我想取我感兴趣的行,而不是放空值,我会放'。我想加入的列是姓氏和姓名。换句话说,我试图使用: SELECT CONCAT(CSurname, ' ', CName) FROM Client; 这样,如果我的姓氏有一个有效值,名字有一个空值,我就得到空值。我使用MySql,谢谢。如果您想避免前导空格的问题,那么最简单的方法可能是CONCAT\u WS(): 与大多数其他函数不同,CONCAT_WS()忽略NULL值(分隔

我试图连接同一个表的两列,但是,如果有空值(在我的例子中,它们在第二列中),我想取我感兴趣的行,而不是放空值,我会放
'
。我想加入的列是
姓氏
姓名
。换句话说,我试图使用:

SELECT CONCAT(CSurname, ' ', CName)
FROM Client;

这样,如果我的姓氏有一个有效值,名字有一个空值,我就得到空值。我使用MySql,谢谢。

如果您想避免前导空格的问题,那么最简单的方法可能是
CONCAT\u WS()

与大多数其他函数不同,
CONCAT_WS()
忽略
NULL
值(分隔符除外),这大大简化了此逻辑,尤其是在处理两个以上的列时

没有它,等效逻辑可以表示为:

SELECT CONCAT(COALESCE(CONCAT(CSurname, ' '), ''), COALESCE(CName, ''))
试试这个函数


我没有本地mysql安装可以试用,但IFNULL函数应该可以满足您的需要。

如果我没有姓氏值,我会获得一个空格和一个名称,它们位于表的开头。我能做些什么来忽略这个空格并按字母顺序排列我的信息?@salvo9415。缺少的值是NULL还是空字符串?
SELECT CONCAT(COALESCE(CONCAT(CSurname, ' '), ''), COALESCE(CName, ''))
SELECT CONCAT(CSurname, ' ', IFNULL(CName,'')) FROM Client;