1

我想从三列中获取字符串,我正在使用这个查询

String selectQuery = "select distinct coalesce(" + SENDERNAME + " , "+ SENDEREMAILID + " , " + SENDERMOBILENUMBER + ")  FROM "+ TABLE_REC ;

但是,如果特定列有空字符串,它会显示并显示它,但如果它为空,则不接受。

我想检查空和空不考虑。即我想向用户显示一些字符串而不是空字符串。

这是图片

这些显示数据库和查询

在此处输入图像描述在此处输入图像描述

当我获取记录并且如果特定记录为空且不为空时,它会显示像这样的空字符串

在此处输入图像描述在此处输入图像描述

4

1 回答 1

2

COALESCE仅更改NULL值,而不更改空字符串。

为了能够使用另一个比较,请使用CASE

SELECT CASE WHEN SenderName <> '' THEN SenderName ELSE 'empty' END FROM TableRec

SenderName <> ''(对于空字符串和NULLs ,表达式都失败。)

要组合三个字段,您必须嵌套多个CASE表达式:

SELECT CASE WHEN SenderName <> ''
            THEN SenderName
            ELSE CASE WHEN SenderEmailId <> ''
                      THEN SenderEmailId
                      ELSE SenderMobileNumber
                 END
       END
FROM TableRec
于 2013-08-22T09:29:08.913 回答