Я не уверен, что это возможно, у меня есть Java-программа, которая запускает заданный запрос (JDBC) и выводит результаты в файл excel. Информация о соединении/db - IBM as400, V7R1M0.Условный SQL-запрос DB2 на основе столбцов
Скажем, у меня есть следующие таблицы:
==================== =================================
| TABLE1 | | TABLE2 |
==================== =================================
| Company | CODE | | ID | CODE1 | CODE2 | CODE3 |
-------------------- --------------------------------
| 001 | E1 | | 1 | 10 | 18 | 21 |
| 005 | E3 | | 2 | 14 | 19 | 23 |
| 009 | E1 | | 3 | 17 | 20 | 25 |
| 015 | E2 | | 4 | 5 | 11 | 15 |
==================== =================================
Мои ожидаемые результаты будут, как:
==============================
RESULTS
==============================
| Company | CODE | CODE3 |
------------------------------
| 005 | E3 | 21 |
==============================
Примечание (ы):
- TABLE1.CODE воли сообщите нам, какой столбец из TABLE2 выбрать.
- TABLE1.COMPANY's CODE изменяется случайным образом
- Мне нужна только одна строка из TABLE2, предположим, что ID = 1 всегда.
Я не уверен, как подойти к этому. Я прочитал, что IBM AS400 не позволяет IF ... ELSE.
Моя идея любопытное походит (псевдокод):
SET Value = SELECT CODE FROM TABLE1 WHERE Company ='005'
IF Value = 'E1'
SELECT CODE1 FROM TABLE1 WHERE ID = 1;
ELSE IF Value = 'E2'
SELECT CODE2 FROM TABLE1 WHERE ID = 1;
...
EDIT
Я знаю, что могу сделать это в Java. но я не хочу его менять. Можно ли это сделать из инструкции SQL?
'стандарты IF ... ELSE' является частью SQL Persistent Stored Modules (SQL/PSM), используемые при создании хранимых процедур и функций , 'CASE' обеспечивает аналогичную функциональность в стандартном SQL-запросе. – Charles