Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/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
Sql server 在SQL SELECT语句中:有条件地从字段中删除逗号运算符_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 在SQL SELECT语句中:有条件地从字段中删除逗号运算符

Sql server 在SQL SELECT语句中:有条件地从字段中删除逗号运算符,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个select语句,如 选择“名称”=客户名称+,“+客户名称” 来自客户 其输出如下: peter, willson jenny, Mark 现在,如果customer_fname为空,则输出将为: , willson , Mark 如果客户名称为空,则: peter, jenny, 如果customer_fname和customer_lname都为空,则只显示逗号 我想删除逗号。怎么做?通常我建议使用操作符。然而,由于您需要检查这两个字段,逻辑变得有点糟糕。因

我有一个select语句,如

选择“名称”=客户名称+,“+客户名称”
来自客户

其输出如下:

peter, willson
jenny, Mark
现在,如果customer_fname为空,则输出将为:

, willson
    , Mark
如果客户名称为空,则:

 peter, 
    jenny,
如果customer_fname和customer_lname都为空,则只显示逗号


我想删除逗号。怎么做?

通常我建议使用操作符。然而,由于您需要检查这两个字段,逻辑变得有点糟糕。因此,我建议使用声明

SELECT CASE 
    WHEN first_name IS NULL AND last_name IS NULL THEN ''
    WHEN first_name IS NULL AND last_name IS NOT NULL THEN last_name
    WHEN first_name IS NOT NULL AND last_name IS NULL THEN first_name
    ELSE last_name + ', ' + first_name
END 
FROM customers
为dknaack编辑-ISNULL解决方案:)


您应该使用运算符CASE和函数ISNULL。

请使用下面的查询:谢谢

SELECT 'Name' =  
        (CASE WHEN customer_fname IS NULL OR customer_lname IS NULL THEN (customer_fname + ' ' + customer_lname )
            ELSE customer_fname+ ', ' + customer_lname END)
         FROM customers

您可以在SQL Server中使用case函数:

SELECT 'Name' = customer_fname+ case when customer_fname is not null then ','  + customer_lname FROM customers

请小心使用[+]运算符处理空值: 除非您将数据库参数CONCAT\u NULL\u products\u NULL设置为OFF

NULL+“任何非NULL字符串”返回NULL,而不是空字符串

SELECT ISNULL(customer_fname,'')+ ISNULL(', '+ customer_lname,'') [Name]
FROM customers

@dknaack请参见ISNULL解决方案的编辑。它的可读性不如SELECT,所以我不推荐它,但它可以工作。。。!
SELECT ISNULL(customer_fname,'')+ ISNULL(', '+ customer_lname,'') [Name]
FROM customers