2016-12-20 3 views
1

У меня есть таблица, как указано ниже:Как изменить порядок столбца

X Y Z 
----------- 
1 10 100 
2 20 200 
3 30 300 
4 40 400 

Я хотел бы только обратный порядок столбца Y с вне воздействующего на остальные данные.
Вывод должен выглядеть следующим образом:

X Y Z 
------------- 
1 40 100 
2 30 200 
3 20 300 
4 10 400 

Может кто-нибудь, пожалуйста, помогите мне с этим?

+0

Какие СУБД? И что вы пробовали до сих пор? – Aleksej

+0

Это не может быть как sql-сервер, так и оракул. Который из них? – DarkKnight

+0

Люди не здесь, чтобы делать домашнее задание, расскажите, что вы пробовали до сих пор. –

ответ

-1

Вот решение SQL Server для вас:

DECLARE @table TABLE (x INT, y INT, z INT); 
INSERT INTO @table SELECT 1, 10, 100; 
INSERT INTO @table SELECT 2, 20, 200; 
INSERT INTO @table SELECT 3, 30, 300; 
INSERT INTO @table SELECT 4, 40, 400; 
WITH Reversed AS (
    SELECT 
     x, 
     ROW_NUMBER() OVER (ORDER BY x) AS r1, 
     ROW_NUMBER() OVER (ORDER BY x DESC) AS r2 
    FROM 
     @table) 
SELECT 
    t1.x, 
    t2.y, 
    t1.z 
FROM 
    Reversed r 
    INNER JOIN @table t1 ON t1.x = r.r1 
    INNER JOIN @table t2 ON t2.x = r.r2 
ORDER BY 
    t1.x; 
+0

Спасибо большое Ричарду. Используя ваш запрос, я смог получить желаемый ответ. – BigDataLearner

0

Проверьте Это.

  select b.X,a.Y,b.Z from 
      (
      select X, Y,Z, ROW_NUMBER() OVER(ORDER BY Y DESC) as rnk1 
      from #tableName 
      )a 
      inner join 
      (
      select X,Y,Z,ROW_NUMBER() OVER(ORDER BY Y)aa 
      from #tableName t 
      )b 
      on a.rnk1=b.aa 

ИЛИ

  select X,50-Y ,Z from 
      #tableName t1 

Выход:

enter image description here

+0

Спасибо большое Бхосале. – BigDataLearner

+0

@BigDataLearner MW. Если его работа для вас будет отмечена как ответ. –

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