2015-11-17 3 views
-1

Когда я запускаю мой запрос я получаю следующее сообщение:"Неверное имя столбца" ORDER BY

Invalid column name 'column1' 

запрос:

SELECT TOP 1 * From (
(select Top 2 convert(datetime,column1,101) AS TEST from table1 ORDER BY column1 DESC) X     
ORDER BY column1) 
+0

Там нет column1 там ... – jarlh

+3

Это не MySQL, вероятно, SQL Server/Sybase – lad2025

+0

Вам нужно для выбора столбца1 в подзапросе. – jarlh

ответ

0
SELECT TOP 1 TEST 
From (
     SELECT Top 2 
      convert(datetime,column1,101) AS TEST, 
      column1   // <- include column1 
     FROM table1 
     ORDER BY column1 DESC 
    ) X     
ORDER BY column1 ASC 
+0

работает !, но результат два раза. – user3587597

+0

измените 'SELECT *' для 'SELECT TOP 1 TEST' –

0

изменения «преобразования (DateTime, column1,101) AS TEST 'to' convert (datetime, column1,101) AS column1 '

0

Возможно, самый простой способ - переместить преобразование из подзапроса:

SELECT TOP 1 convert(datetime, column1, 101) as test 
From (select Top 2 t.* 
     from table1 
     order by column1 desc 
    ) X     
ORDER BY column1; 

Или, если ваша база данных поддерживает его, используйте стандарт ANSI FETCH/OFFSET:

select convert(datetime, column1, 101) as test 
from table1 
order by column1 desc 
offset 1 row 
fetch first 1 row only; 
Смежные вопросы