使用coalesce的SQL查询问题

时间:2013-08-22 07:04:05

标签: android sql sqlite coalesce

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

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

但是如果一个特殊的列有空字符串它会显示它,但如果它为null则它不接受。

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

以下是图片

这些显示数据库和查询

enter image description here enter image description here

当我获取记录时,如果特定记录为空且非空,则显示空字符串

enter image description here enter image description here

1 个答案:

答案 0 :(得分:2)

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