Как декодировать первую строку только в SQL - PullRequest
0 голосов
/ 27 июня 2019

У меня есть следующий SQL

Select decode(:lang_no, 1 , Local_Name , 2 , foreign_Name) Name from Table_Name; 

Последний SQL извлекает около сотен тысяч записей, и декодирование замедляет извлечение, и потому: Lang_no является параметром (который одинаков для всехзаписи) Я хочу сказать оптимизатору декодировать только первую строку, поэтому, если :lang_no =1, он не должен проверять другие записи и напрямую возвращать Local_Name и т. д.

Итак, есть лилюбая подсказка Oracle или другая идея настройки, которая может помочь?.

1 Ответ

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

Вы можете использовать выражение CASE?

Select CASE 
          WHEN :lang_no = 1 THEN decode(:lang_no, 1 , Local_Name , 2 , foreign_Name) 
          ELSE LocalName 
      END Name 
from Table_Name; 
...