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

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


但是,如果一个垂直列具有空字符串,它将接受并显示它,但是如果它为null,则不接受。

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

这是图像

这些显示数据库和查询



当我获取记录并且如果特定记录为空而不为null时,它将显示为空字符串

最佳答案

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

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

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


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

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

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

10-08 17:24