在CASE表达式中,'%@%'THEN 1 ELSE 2 END的作用是什么

时间:2016-10-27 07:02:05

标签: sql sqlite

我不明白上述陈述究竟发生了什么,究竟是什么'%@%'那么1节2结束。

String order = "CASE WHEN "
                + ContactsContract.Contacts.DISPLAY_NAME
                + " NOT LIKE '%@%' THEN 1 ELSE 2 END, "
                + ContactsContract.Contacts.DISPLAY_NAME
                + ", "
                + ContactsContract.CommonDataKinds.Phone.NUMBER
                + " COLLATE NOCASE";

2 个答案:

答案 0 :(得分:3)

大小写与if语句类似,但可以在多个条件下使用:

在您的示例中,它表示:

如果ContactsContract.Contacts.DISPLAY_NAME不是lIKE'%@%'然后返回1 ELSE返回2

关于'%@%': %意味着在这个地方可以有某些字符。 这意味着用户想要选择所有包含' @'的字段。无论是在文本的开头,中间还是结尾都有字符。

答案 1 :(得分:0)

CASE语句就像一个IF语句,如果你想避免使用很多“ELSE”,它会更方便。

%字符是SQLite中的通配符。所以,不喜欢'%@%'表示不包含“@”字符(例如电子邮件地址)。