此问题在此处已有答案:
How can I make Java print quotes, like "Hello"?(11个答案)
4天前关闭。
下面的查询在我的Oracle开发人员中非常有效:
sb.Append("SELECT CASE GROUPING_ID(status, CASE WHEN status IN(2, 4, 5) THEN 1 ELSE 0 END) ");
sb.Append(" WHEN 0 THEN TO_CHAR(status) WHEN 2 THEN 'SUB-TOTAL' ELSE 'TOTAL' END AS status, ");
1 sb.Append(" COUNT(CASE user_type WHEN 1 THEN 1 END) AS "1" ");
2 sb.Append(" COUNT(CASE user_type WHEN 2 THEN 1 END) AS "2", ");
3 sb.Append(" COUNT(CASE user_type WHEN 3 THEN 1 END) AS "4", ");
4 sb.Append(" COUNT(CASE user_type WHEN 5 THEN 1 END) AS "5", ");
sb.Append(" COUNT(*) AS total ");
sb.Append(" FROM(Select STATUS, USER_TYPE FROM TRANSACTIONS tr join TRANSACTION_STATUS_CODES sc on sc.id = tr.user_type join ");
sb.Append(" TRANSACTION_USER_TYPES ut on ut.id = tr.user_type ");
sb.Append(" WHERE Tr.User_Type between 1 and 5 And tr.status != 1 AND Tr.Update_Date BETWEEN TO_DATE('2022-01-01 00:00:00', 'yyyy-mm-dd HH24:MI:SS') AND TO_DATE('2022-11-13 23:59:59', 'yyyy-mm-dd HH24:MI:SS')) ");
sb.Append(" GROUP BY CUBE(status, CASE WHEN status IN(2, 4, 5) THEN 1 ELSE 0 END) ");
sb.Append(" HAVING GROUPING_ID(status, CASE WHEN status IN (2, 4, 5) THEN 1 ELSE 0 END) IN(0, 3) ");
sb.Append(" OR(GROUPING_ID(status, CASE WHEN status IN(2, 4, 5) THEN 1 ELSE 0 END) = 2 ");
sb.Append(" AND CASE WHEN status IN(2, 4, 5) THEN 1 ELSE 0 END = 1) " );
在我从1-〉4标记的行中,我有一个错误,因为我不能在parantheses中使用parantheses。我想要的是能够真正把“1”,“2”放进我的stringbuilder中,我怎么能做到呢?
感谢
1条答案
按热度按时间rjjhvcjd1#
正如前面问题答案的注解中提到的,转义字符串文字内的双引号。
或使用不带引号的标识符: