我尝试使用以下选择对android sqlite数据库进行查询,但是当我将它放入eclipse时它只显示错误。
stmt = "SELECT * FROM user_zones JOIN pos WHERE user_zones.zone_id = (
CASE
WHEN user_zones.type_zone_id = 'Zone' THEN pos.zone_id
WHEN user_zones.type_zone_id = 'Area' THEN pos.area_id
WHEN user_zones.type_zone_id = 'Town' THEN pos.town_id
WHEN user_zones.type_zone_id = 'MicroZone' THEN pos.microzone_id END) AND user_zones.user_id = '"+id_user+"'";
有没有人知道上面的语法有什么问题?谢谢
编辑:我甚至无法运行代码,有语法错误!错误:cannot find symbol class CASE
unclosed character literal
cannot find symbol class 'THEN'
expected ';' ....and so on
答案 0 :(得分:2)
如果这实际上是您粘贴到Java源代码中的内容,那么您的问题是Java中的字符串文字不能跨越多行。您必须为每一行使用单独的字符串文字将其拆分,然后将它们与+
运算符粘合在一起。像这样。
stmt = "SELECT * FROM user_zones JOIN pos WHERE user_zones.zone_id = (" +
" CASE" +
...