Sql ';%@%表示什么';然后在CASE表达式中使用1 ELSE 2 END do
我不明白上面的语句中到底发生了什么,以及“@%”到底是什么,然后是1或2结束Sql ';%@%表示什么';然后在CASE表达式中使用1 ELSE 2 END do,sql,sqlite,Sql,Sqlite,我不明白上面的语句中到底发生了什么,以及“@%”到底是什么,然后是1或2结束 String order = "CASE WHEN " + ContactsContract.Contacts.DISPLAY_NAME + " NOT LIKE '%@%' THEN 1 ELSE 2 END, " + ContactsContract.Contacts.DISPLAY_NAME
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";
大小写类似于
if
语句,但可用于多种条件:
在您的示例中,它意味着:
如果ContactsContract.Contacts.DISPLAY\u名称与“%@%”不同,则返回1
否则返回2
关于“%@%”,请执行以下操作:
%表示此处可能有某些字符。
这意味着用户希望选择所有不包含“@”字符的字段,无论是在文本的开头、中间还是结尾。CASE语句类似于IF语句,如果您希望避免使用许多“ELSE”,则更方便
%字符是SQLite中的通配符。因此,与“%@%”不同的是,不包含“@”字符(例如电子邮件地址)。也许您可以对“%@%”进行更多解释。请不要使用不相关的标记。这显然是一个SQL问题,而不是Jav或Android问题。谢谢@StephenC,我会在发帖时牢记在心。学习SQL:阅读,尤其是和。表示“不包含
@
字符”。如果说任何带有@
字符的东西都是电子邮件地址,那就太夸张了。