2016-12-23 3 views
0

Я начинаю с Oracle. Я использую SQL Developer и я пытаюсь запустить запрос SQL, как что: отображаетсяВыберите не работает - Oracle

select date_depart,* from train where no_train='111'; 

сообщение об ошибке: «недостающее выражение» Как я могу решить эту проблему, пожалуйста?

+2

Почему вы хотите дважды «tran_no» показать? Этот столбец будет включен в '*'. Обычно использовать неверную практику использовать '*', но лучше указать все нужные столбцы. –

+1

'выберите no_train, train. * Из поезда, где no_train = '111';' – GurV

+0

это просто проблема читаемости! даже когда я пишу другой столбец вместо no_engin, он не работает – josef

ответ

3

Предполагая, что вы хотите результат, содержащий столбец no_train следуют все столбцы таблицы, в том числе no_train, которые будут показаны дважды, возможно, потребуется добавить псевдоним:

select no_train, t.* 
from train t 
where no_train='111'; 

Например, с таблица, как этот

create table train(no_train, descr) as (select 111, 'descr' from dual); 

это даст:

SQL> select no_train, t.* 
    2 from train t 
    3 where no_train='111'; 

    NO_TRAIN NO_TRAIN DESCR 
---------- ---------- ----- 
     111  111 descr 
+0

Спасибо за ваш ответ. Он работает хорошо! – josef

4

Если вы хотите использовать любой другой столбец или выражение, наряду с * шаблона, вы должны указать, какие Таблица * относится также, либо используя полное имя:

select no_train, train.* from train where no_train='111'; 

или с псевдонимом:

select t.no_train, t.* from train t where no_train='111'; 

Но поскольку подстановочный знак * получает все столбцы, вы увидите дважды train_no. Лучше перечислить столбцы, которые вы хотите:

select t.train_no, t.train_type, t.depot, ... -- whatever your real columns are 
from train t 
where t.train_no = 111 

Если номер поезда фактически введите номер данных, которые вы не должны ограждающих буквальный 111 в кавычках. Всегда используйте нужный тип данных, не заставляйте или не полагайтесь на неявное преобразование данных.

+0

Спасибо за ваш ответ. Он работает хорошо! – josef

Смежные вопросы