#java #jdbc
Вопрос:
Как передать параметры вместо abcd для следующего запроса при использовании подготовленной инструкции?
select * from table (PIVOT ( ' select A, B, SUM(C) from TABLE_XYZ where A =' 'abcd' ' GROUP BY A, B ORDER BY A ASC ' )) order by A;
Ответ №1:
Вы можете использовать String.format(<format of your string with format specifiers like %s or %d and etc >,< parameters >)
. В случае вашего запроса; Он может быть написан:
String query = String.format('select * from table (PIVOT ('select A, B, SUM(C) from TABLE_XYZ where A =' %s ' GROUP BY A, B ORDER BY A ASC')) order by A;', 'abcd');
В результате ваш запрос будет выглядеть следующим образом(abcd без кавычек):
выберите * из таблицы (СВОДНАЯ («выберите A, B, СУММУ(C) из TABLE_XYZ, где A =» abcd «ГРУППИРУЕТСЯ ПО A, B, УПОРЯДОЧИВАЕТСЯ ПО ASC»)) порядок по A;
если вы хотите, чтобы он был в кавычках, напишите этот код:
String query = String.format('select * from table (PIVOT ('select A, B, SUM(C) from TABLE_XYZ where A =' %s ' GROUP BY A, B ORDER BY A ASC')) order by A;', ''abcd'');