0

次のselectを使用してandroidsqliteデータベースにクエリを実行しようとしましたが、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
4

1 に答える 1

2

それが文字通りJavaソースに貼り付けたものである場合、問題はJavaの文字列リテラルが複数行にまたがることができないことです。行ごとに個別の文字列リテラルを使用して分割し、演算子を使用してそれらをすべて接着する必要があり+ます。このような。

stmt = "SELECT * FROM user_zones JOIN pos WHERE user_zones.zone_id = (" +
       "        CASE" +
       ...

Eclipseでの複数行のJava文字列の貼り付けを参照してください。

于 2012-08-20T09:10:50.890 に答える