[英]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.