Добавить условие в SQL-запрос на основе табличного значения - PullRequest
0 голосов
/ 03 июня 2019

Я использую оракул в качестве базы данных.Я хочу добавить условие в SQL-запрос на основе данных таблицы.В таблице, если CT_GENERAL равен 1, тогда я хочу добавить еще одно условие в мой SQL-запрос. (CST_GENERAL = USER ARGUMENT).

выберите * из ch_caseinfo, где случай, когда ct_general = 1, затем cst_general =% 3 end

% 3 = финансирование

// ТАБЛИЦА СТРУКТУРЫ // CH_CASEINFO

ОБЪЕМ |CT_ADVERSE |CT_GENERAL |CT_HA |CT_MI |CST_GENERAL |CST_MI

149634          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
161077          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
161147          0          1          0          1 Funding          Composition/ingredients                                                                                                                                                                                                                                        
161268          0          1          0          0 Funding                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
161306          0          1          0          0 Manufacturing                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
240131          0          1          1          0 Funding                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
239364          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
239364          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
147434          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
147466          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
158990          0          1          0          1 Funding          Administration                                                                                                                                                                                                                                                 

 98863          1          1          1          1 Funding          Disposal                                                                                                                                                                                                                                                       
159757          1          1          1          1 Funding          Disposal                                                                                                                                                                                                                                                       
 98863                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
191039          1          1          0          0 Other                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
 97007          0          0          0          0     

ORA-00905: пропущенное ключевое слово 00905. 00000 - «пропущенное ключевое слово»

1 Ответ

0 голосов
/ 03 июня 2019

Вам необходимо сформировать предложение where для оценки выражения, которое истинно, если вы не хотите включать фильтр (CT_GENERAL равен 0). Рассматривая приведенный ниже пример, если ct_general = 0, тогда cst_general всегда будет равняться cst_general (если не ноль - если это возможно, вам нужно учесть нули).

SELECT *
FROM ch_caseinfo
WHERE CASE WHEN ct_general = 0 THEN cst_general ELSE USERARGUMENT END = cst_general
    AND OTHERCRITERIA = CRITERIA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...