简体   繁体   English

Android SQLite查询ContentProvider Case语句语法

[英]Android SQLite query ContentProvider Case Statement syntax

I am receiving an error when I run this query, any clue what my syntax error is? 我在运行此查询时收到错误,是否知道我的语法错误是什么?

final Cursor c = getContentResolver().query(
Provider.GAME_URI, new String[]{"CASE WHEN " +DBHelper.COLUMN_CRE_USER + " = " + preferences.getInt(LoginScreen.ID, 0) + " THEN (" + DBHelper.COLUMN_CRE_PTS + " AS you AND " + DBHelper.COLUMN_CON_PTS + " AS them) ELSE (" + DBHelper.COLUMN_CON_PTS + " AS you AND " + DBHelper.COLUMN_CRE_PTS + " AS them)"},"turn = ?",
new String[] { preferences.getInt(LoginScreen.ID, 0) + ""}, null);

04-24 19:57:48.345: E/AndroidRuntime(18775): Caused by: android.database.sqlite.SQLiteException: near "AS": syntax error (code 1): , while compiling: SELECT CASE WHEN createduser = 112 THEN (createdplayerpts AS you AND connectedplayerpts AS them) ELSE (connectedplayerpts AS you AND createdplayerpts AS them) FROM game WHERE (turn = ?) 04月24日19:57:48.345:E / AndroidRuntime(18775):由以下原因引起:android.database.sqlite.SQLiteException:在“ AS”附近:语法错误(代码1):,而在编译时:创建CASE时创建了SELECT ASE = 112 THEN (创建的玩家和您所连接的玩家一样)ELSE(创建的玩家和您所创建的玩家一样)来自游戏在哪里(turn =?)

Try this. 尝试这个。

SELECT 
    CASE WHEN createduser = 112 THEN createdplayerpts ELSE connectedplayerpts END AS you,
    CASE WHEN createduser = 112 THEN connectedplayerpts ELSE createdplayerpts END AS them
FROM 
    game WHERE (turn = ?)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM