Order table by two columnsSequential joining of tables in orderGroup by + Order by Behavior Explanation?Best way to rank all the columns in a table and store those ranks in another tableSet in mySQL a predefined order for SELECT queries without using the ORDER BY clauseHow do I control order/arrangement of certain columns in a resultset?Transposing hierachical data from one VARCHAR to two INTsHow can I speed up an ASC sort on a column that only holds an integer between 0 and 9 across multiple millions of rows?Mysql: slow down with order by, global database problemORDER BY doesn't use an index on SQL Server if CASE WHEN is presentHow to identify columns order in a table, bis

Could the black hole photo be a gravastar?

Find the cheapest shipping option based on item weight

List of newcommands used

What was Bran's plan to kill the Night King?

Why does this derived table improve performance?

Controlled Hadamard gate in ZX-calculus

Multiple SQL versions with Docker

How can I get people to remember my character's gender?

Where are the "shires" in the UK?

In Stroustrup's example, what does this colon mean in `return 1 : 2`? It's not a label or ternary operator

Are the Night's Watch still required?

How to use dependency injection and avoid temporal coupling?

Why is "breaking the mould" positively connoted?

ZSPL language, anyone heard of it?

How can I get a job without pushing my family's income into a higher tax bracket?

Target/total memory is higher than max_server_memory

How can I roleplay a follower-type character when I as a player have a leader-type personality?

What if the end-user didn't have the required library?

What does 'made on' mean here?

Can you Ready a Bard spell to release it after using Battle Magic?

Has the Hulk always been able to talk?

Building a list of products from the elements in another list

How long would it take for people to notice a mass disappearance?

What are the differences between credential stuffing and password spraying?



Order table by two columns


Sequential joining of tables in orderGroup by + Order by Behavior Explanation?Best way to rank all the columns in a table and store those ranks in another tableSet in mySQL a predefined order for SELECT queries without using the ORDER BY clauseHow do I control order/arrangement of certain columns in a resultset?Transposing hierachical data from one VARCHAR to two INTsHow can I speed up an ASC sort on a column that only holds an integer between 0 and 9 across multiple millions of rows?Mysql: slow down with order by, global database problemORDER BY doesn't use an index on SQL Server if CASE WHEN is presentHow to identify columns order in a table, bis






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








3















I would like to order this table but I can not find a way to make it work. Can you help me?



I have this table:



The table



I need this:



The other one



I have a table where documents are listed, the first field is the id of the document and the second field represents the father, so I must show a list where you can see in an orderly manner that 242 is the first document and 252 and 335 were generated from the 242.



The query:



select * from table_name order by col1 ASC, Col2 ASC


...doesn't work for me. I do this query:



SELECT
FR1.[report_id],
FR1.[report_parent]
FROM [FARA_reports] FR1
WHERE
FR1.[report_is_delete] <> 1
AND FR1.[report_is_tmp] <> 1
ORDER BY
FR1.[report_id] asc,
FR1.[report_parent] desc


and this is my first image.










share|improve this question






























    3















    I would like to order this table but I can not find a way to make it work. Can you help me?



    I have this table:



    The table



    I need this:



    The other one



    I have a table where documents are listed, the first field is the id of the document and the second field represents the father, so I must show a list where you can see in an orderly manner that 242 is the first document and 252 and 335 were generated from the 242.



    The query:



    select * from table_name order by col1 ASC, Col2 ASC


    ...doesn't work for me. I do this query:



    SELECT
    FR1.[report_id],
    FR1.[report_parent]
    FROM [FARA_reports] FR1
    WHERE
    FR1.[report_is_delete] <> 1
    AND FR1.[report_is_tmp] <> 1
    ORDER BY
    FR1.[report_id] asc,
    FR1.[report_parent] desc


    and this is my first image.










    share|improve this question


























      3












      3








      3


      0






      I would like to order this table but I can not find a way to make it work. Can you help me?



      I have this table:



      The table



      I need this:



      The other one



      I have a table where documents are listed, the first field is the id of the document and the second field represents the father, so I must show a list where you can see in an orderly manner that 242 is the first document and 252 and 335 were generated from the 242.



      The query:



      select * from table_name order by col1 ASC, Col2 ASC


      ...doesn't work for me. I do this query:



      SELECT
      FR1.[report_id],
      FR1.[report_parent]
      FROM [FARA_reports] FR1
      WHERE
      FR1.[report_is_delete] <> 1
      AND FR1.[report_is_tmp] <> 1
      ORDER BY
      FR1.[report_id] asc,
      FR1.[report_parent] desc


      and this is my first image.










      share|improve this question
















      I would like to order this table but I can not find a way to make it work. Can you help me?



      I have this table:



      The table



      I need this:



      The other one



      I have a table where documents are listed, the first field is the id of the document and the second field represents the father, so I must show a list where you can see in an orderly manner that 242 is the first document and 252 and 335 were generated from the 242.



      The query:



      select * from table_name order by col1 ASC, Col2 ASC


      ...doesn't work for me. I do this query:



      SELECT
      FR1.[report_id],
      FR1.[report_parent]
      FROM [FARA_reports] FR1
      WHERE
      FR1.[report_is_delete] <> 1
      AND FR1.[report_is_tmp] <> 1
      ORDER BY
      FR1.[report_id] asc,
      FR1.[report_parent] desc


      and this is my first image.







      sql-server sql-server-2008 order-by






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 10 at 5:19









      Paul White

      54.5k14290461




      54.5k14290461










      asked Apr 9 at 22:57









      Liliana del Carmen CastellanosLiliana del Carmen Castellanos

      182




      182




















          5 Answers
          5






          active

          oldest

          votes


















          5














          Another option:



          select a, b
          from t
          order by
          case when a < b or b is null then a else b end,
          case when a < b or b is null then b else a end ;


          Test in dbfiddle.uk.






          share|improve this answer























          • Can't you just order by isnull(id2, id1), id2?

            – bendataclear
            Apr 10 at 12:22






          • 1





            @bendtaclear yes. When I wrote the answer, it wasn't clear that first column can never be null.

            – ypercubeᵀᴹ
            Apr 10 at 13:55











          • These really work for me :D

            – Liliana del Carmen Castellanos
            Apr 10 at 15:07


















          8














          Your data:



          CREATE TABLE dbo.WEIRD_ORDERING
          (
          ID1 INT NULL,
          ID2 INT NULL
          );

          INSERT INTO dbo.WEIRD_ORDERING VALUES
          (242, NULL),
          (243, NULL),
          (244, NULL),
          (252, 242),
          (254, NULL),
          (255, NULL),
          (256, NULL),
          (292, NULL),
          (308, NULL),
          (311, NULL),
          (313, 311),
          (314, 311),
          (323, NULL),
          (324, 311),
          (335, 242),
          (340, NULL),
          (341, NULL),
          (358, NULL),
          (372, NULL),
          (373, NULL),
          (377, NULL),
          (378, 358),
          (379, 358),
          (380, 358),
          (381, 358);


          This gives you results in the desired order:



          SELECT ID1, ID2
          FROM
          (
          SELECT ID1, ID2, ID1 AS ORDERING_COLUMN
          FROM dbo.WEIRD_ORDERING
          WHERE ID1 <= ID2 OR ID2 IS NULL

          UNION ALL

          SELECT ID1, ID2, ID2 AS ORDERING_COLUMN
          FROM dbo.WEIRD_ORDERING
          WHERE ID1 > ID2 OR ID1 IS NULL
          ) q
          ORDER BY ORDERING_COLUMN;


          db fiddle






          share|improve this answer























          • Thank you so much. You are AWESOME!! :D

            – Liliana del Carmen Castellanos
            Apr 10 at 15:01











          • This doesn't quite work, if you reorder your input data from (313, 311), (314, 311) to (314, 311),(313, 311) it comes out in the wrong order, I suggest updating the order by statement to be ORDER BY ORDERING_COLUMN, ID1 to fix that

            – Xynos
            Apr 10 at 15:01











          • @Xynos feel free to edit

            – Joe Obbish
            Apr 10 at 19:52


















          3














          Stealing the sql fiddle table from Joe Obbish this is a simple solution



          SELECT * FROM dbo.WEIRD_ORDERING
          ORDER BY coalesce(ID2*1000+1, ID1*1000)





          share|improve this answer






























            2














            SELECT *
            FROM datatable
            ORDER BY CASE WHEN field2 IS NULL THEN field1 ELSE field2 END, -- sort groups
            CASE WHEN field2 IS NULL THEN 1 ELSE 2 END, -- move parent first
            field2 -- sort childs





            share|improve this answer






























              2














              All answers so far rely on an assumption that there are no further levels of "generated from" (e.g. there is no 382 generated from the 381 which is itself generated from 352 - or which was it).



              They should know what is said of "assume", so they should have asked you about this first.



              If you can indeed have further levels of "generated from", then you need a recursive query to do the full path construction ("352" , "352/381" , "352/381/382" , etc etc) and ORDER BY that full path.






              share|improve this answer























                Your Answer








                StackExchange.ready(function()
                var channelOptions =
                tags: "".split(" "),
                id: "182"
                ;
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function()
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled)
                StackExchange.using("snippets", function()
                createEditor();
                );

                else
                createEditor();

                );

                function createEditor()
                StackExchange.prepareEditor(
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader:
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                ,
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                );



                );













                draft saved

                draft discarded


















                StackExchange.ready(
                function ()
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f234368%2forder-table-by-two-columns%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                5 Answers
                5






                active

                oldest

                votes








                5 Answers
                5






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                5














                Another option:



                select a, b
                from t
                order by
                case when a < b or b is null then a else b end,
                case when a < b or b is null then b else a end ;


                Test in dbfiddle.uk.






                share|improve this answer























                • Can't you just order by isnull(id2, id1), id2?

                  – bendataclear
                  Apr 10 at 12:22






                • 1





                  @bendtaclear yes. When I wrote the answer, it wasn't clear that first column can never be null.

                  – ypercubeᵀᴹ
                  Apr 10 at 13:55











                • These really work for me :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:07















                5














                Another option:



                select a, b
                from t
                order by
                case when a < b or b is null then a else b end,
                case when a < b or b is null then b else a end ;


                Test in dbfiddle.uk.






                share|improve this answer























                • Can't you just order by isnull(id2, id1), id2?

                  – bendataclear
                  Apr 10 at 12:22






                • 1





                  @bendtaclear yes. When I wrote the answer, it wasn't clear that first column can never be null.

                  – ypercubeᵀᴹ
                  Apr 10 at 13:55











                • These really work for me :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:07













                5












                5








                5







                Another option:



                select a, b
                from t
                order by
                case when a < b or b is null then a else b end,
                case when a < b or b is null then b else a end ;


                Test in dbfiddle.uk.






                share|improve this answer













                Another option:



                select a, b
                from t
                order by
                case when a < b or b is null then a else b end,
                case when a < b or b is null then b else a end ;


                Test in dbfiddle.uk.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Apr 10 at 6:47









                ypercubeᵀᴹypercubeᵀᴹ

                78.8k11137223




                78.8k11137223












                • Can't you just order by isnull(id2, id1), id2?

                  – bendataclear
                  Apr 10 at 12:22






                • 1





                  @bendtaclear yes. When I wrote the answer, it wasn't clear that first column can never be null.

                  – ypercubeᵀᴹ
                  Apr 10 at 13:55











                • These really work for me :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:07

















                • Can't you just order by isnull(id2, id1), id2?

                  – bendataclear
                  Apr 10 at 12:22






                • 1





                  @bendtaclear yes. When I wrote the answer, it wasn't clear that first column can never be null.

                  – ypercubeᵀᴹ
                  Apr 10 at 13:55











                • These really work for me :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:07
















                Can't you just order by isnull(id2, id1), id2?

                – bendataclear
                Apr 10 at 12:22





                Can't you just order by isnull(id2, id1), id2?

                – bendataclear
                Apr 10 at 12:22




                1




                1





                @bendtaclear yes. When I wrote the answer, it wasn't clear that first column can never be null.

                – ypercubeᵀᴹ
                Apr 10 at 13:55





                @bendtaclear yes. When I wrote the answer, it wasn't clear that first column can never be null.

                – ypercubeᵀᴹ
                Apr 10 at 13:55













                These really work for me :D

                – Liliana del Carmen Castellanos
                Apr 10 at 15:07





                These really work for me :D

                – Liliana del Carmen Castellanos
                Apr 10 at 15:07













                8














                Your data:



                CREATE TABLE dbo.WEIRD_ORDERING
                (
                ID1 INT NULL,
                ID2 INT NULL
                );

                INSERT INTO dbo.WEIRD_ORDERING VALUES
                (242, NULL),
                (243, NULL),
                (244, NULL),
                (252, 242),
                (254, NULL),
                (255, NULL),
                (256, NULL),
                (292, NULL),
                (308, NULL),
                (311, NULL),
                (313, 311),
                (314, 311),
                (323, NULL),
                (324, 311),
                (335, 242),
                (340, NULL),
                (341, NULL),
                (358, NULL),
                (372, NULL),
                (373, NULL),
                (377, NULL),
                (378, 358),
                (379, 358),
                (380, 358),
                (381, 358);


                This gives you results in the desired order:



                SELECT ID1, ID2
                FROM
                (
                SELECT ID1, ID2, ID1 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 <= ID2 OR ID2 IS NULL

                UNION ALL

                SELECT ID1, ID2, ID2 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 > ID2 OR ID1 IS NULL
                ) q
                ORDER BY ORDERING_COLUMN;


                db fiddle






                share|improve this answer























                • Thank you so much. You are AWESOME!! :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:01











                • This doesn't quite work, if you reorder your input data from (313, 311), (314, 311) to (314, 311),(313, 311) it comes out in the wrong order, I suggest updating the order by statement to be ORDER BY ORDERING_COLUMN, ID1 to fix that

                  – Xynos
                  Apr 10 at 15:01











                • @Xynos feel free to edit

                  – Joe Obbish
                  Apr 10 at 19:52















                8














                Your data:



                CREATE TABLE dbo.WEIRD_ORDERING
                (
                ID1 INT NULL,
                ID2 INT NULL
                );

                INSERT INTO dbo.WEIRD_ORDERING VALUES
                (242, NULL),
                (243, NULL),
                (244, NULL),
                (252, 242),
                (254, NULL),
                (255, NULL),
                (256, NULL),
                (292, NULL),
                (308, NULL),
                (311, NULL),
                (313, 311),
                (314, 311),
                (323, NULL),
                (324, 311),
                (335, 242),
                (340, NULL),
                (341, NULL),
                (358, NULL),
                (372, NULL),
                (373, NULL),
                (377, NULL),
                (378, 358),
                (379, 358),
                (380, 358),
                (381, 358);


                This gives you results in the desired order:



                SELECT ID1, ID2
                FROM
                (
                SELECT ID1, ID2, ID1 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 <= ID2 OR ID2 IS NULL

                UNION ALL

                SELECT ID1, ID2, ID2 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 > ID2 OR ID1 IS NULL
                ) q
                ORDER BY ORDERING_COLUMN;


                db fiddle






                share|improve this answer























                • Thank you so much. You are AWESOME!! :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:01











                • This doesn't quite work, if you reorder your input data from (313, 311), (314, 311) to (314, 311),(313, 311) it comes out in the wrong order, I suggest updating the order by statement to be ORDER BY ORDERING_COLUMN, ID1 to fix that

                  – Xynos
                  Apr 10 at 15:01











                • @Xynos feel free to edit

                  – Joe Obbish
                  Apr 10 at 19:52













                8












                8








                8







                Your data:



                CREATE TABLE dbo.WEIRD_ORDERING
                (
                ID1 INT NULL,
                ID2 INT NULL
                );

                INSERT INTO dbo.WEIRD_ORDERING VALUES
                (242, NULL),
                (243, NULL),
                (244, NULL),
                (252, 242),
                (254, NULL),
                (255, NULL),
                (256, NULL),
                (292, NULL),
                (308, NULL),
                (311, NULL),
                (313, 311),
                (314, 311),
                (323, NULL),
                (324, 311),
                (335, 242),
                (340, NULL),
                (341, NULL),
                (358, NULL),
                (372, NULL),
                (373, NULL),
                (377, NULL),
                (378, 358),
                (379, 358),
                (380, 358),
                (381, 358);


                This gives you results in the desired order:



                SELECT ID1, ID2
                FROM
                (
                SELECT ID1, ID2, ID1 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 <= ID2 OR ID2 IS NULL

                UNION ALL

                SELECT ID1, ID2, ID2 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 > ID2 OR ID1 IS NULL
                ) q
                ORDER BY ORDERING_COLUMN;


                db fiddle






                share|improve this answer













                Your data:



                CREATE TABLE dbo.WEIRD_ORDERING
                (
                ID1 INT NULL,
                ID2 INT NULL
                );

                INSERT INTO dbo.WEIRD_ORDERING VALUES
                (242, NULL),
                (243, NULL),
                (244, NULL),
                (252, 242),
                (254, NULL),
                (255, NULL),
                (256, NULL),
                (292, NULL),
                (308, NULL),
                (311, NULL),
                (313, 311),
                (314, 311),
                (323, NULL),
                (324, 311),
                (335, 242),
                (340, NULL),
                (341, NULL),
                (358, NULL),
                (372, NULL),
                (373, NULL),
                (377, NULL),
                (378, 358),
                (379, 358),
                (380, 358),
                (381, 358);


                This gives you results in the desired order:



                SELECT ID1, ID2
                FROM
                (
                SELECT ID1, ID2, ID1 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 <= ID2 OR ID2 IS NULL

                UNION ALL

                SELECT ID1, ID2, ID2 AS ORDERING_COLUMN
                FROM dbo.WEIRD_ORDERING
                WHERE ID1 > ID2 OR ID1 IS NULL
                ) q
                ORDER BY ORDERING_COLUMN;


                db fiddle







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Apr 10 at 0:08









                Joe ObbishJoe Obbish

                22.6k43495




                22.6k43495












                • Thank you so much. You are AWESOME!! :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:01











                • This doesn't quite work, if you reorder your input data from (313, 311), (314, 311) to (314, 311),(313, 311) it comes out in the wrong order, I suggest updating the order by statement to be ORDER BY ORDERING_COLUMN, ID1 to fix that

                  – Xynos
                  Apr 10 at 15:01











                • @Xynos feel free to edit

                  – Joe Obbish
                  Apr 10 at 19:52

















                • Thank you so much. You are AWESOME!! :D

                  – Liliana del Carmen Castellanos
                  Apr 10 at 15:01











                • This doesn't quite work, if you reorder your input data from (313, 311), (314, 311) to (314, 311),(313, 311) it comes out in the wrong order, I suggest updating the order by statement to be ORDER BY ORDERING_COLUMN, ID1 to fix that

                  – Xynos
                  Apr 10 at 15:01











                • @Xynos feel free to edit

                  – Joe Obbish
                  Apr 10 at 19:52
















                Thank you so much. You are AWESOME!! :D

                – Liliana del Carmen Castellanos
                Apr 10 at 15:01





                Thank you so much. You are AWESOME!! :D

                – Liliana del Carmen Castellanos
                Apr 10 at 15:01













                This doesn't quite work, if you reorder your input data from (313, 311), (314, 311) to (314, 311),(313, 311) it comes out in the wrong order, I suggest updating the order by statement to be ORDER BY ORDERING_COLUMN, ID1 to fix that

                – Xynos
                Apr 10 at 15:01





                This doesn't quite work, if you reorder your input data from (313, 311), (314, 311) to (314, 311),(313, 311) it comes out in the wrong order, I suggest updating the order by statement to be ORDER BY ORDERING_COLUMN, ID1 to fix that

                – Xynos
                Apr 10 at 15:01













                @Xynos feel free to edit

                – Joe Obbish
                Apr 10 at 19:52





                @Xynos feel free to edit

                – Joe Obbish
                Apr 10 at 19:52











                3














                Stealing the sql fiddle table from Joe Obbish this is a simple solution



                SELECT * FROM dbo.WEIRD_ORDERING
                ORDER BY coalesce(ID2*1000+1, ID1*1000)





                share|improve this answer



























                  3














                  Stealing the sql fiddle table from Joe Obbish this is a simple solution



                  SELECT * FROM dbo.WEIRD_ORDERING
                  ORDER BY coalesce(ID2*1000+1, ID1*1000)





                  share|improve this answer

























                    3












                    3








                    3







                    Stealing the sql fiddle table from Joe Obbish this is a simple solution



                    SELECT * FROM dbo.WEIRD_ORDERING
                    ORDER BY coalesce(ID2*1000+1, ID1*1000)





                    share|improve this answer













                    Stealing the sql fiddle table from Joe Obbish this is a simple solution



                    SELECT * FROM dbo.WEIRD_ORDERING
                    ORDER BY coalesce(ID2*1000+1, ID1*1000)






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Apr 10 at 7:34









                    SpacebenSpaceben

                    311




                    311





















                        2














                        SELECT *
                        FROM datatable
                        ORDER BY CASE WHEN field2 IS NULL THEN field1 ELSE field2 END, -- sort groups
                        CASE WHEN field2 IS NULL THEN 1 ELSE 2 END, -- move parent first
                        field2 -- sort childs





                        share|improve this answer



























                          2














                          SELECT *
                          FROM datatable
                          ORDER BY CASE WHEN field2 IS NULL THEN field1 ELSE field2 END, -- sort groups
                          CASE WHEN field2 IS NULL THEN 1 ELSE 2 END, -- move parent first
                          field2 -- sort childs





                          share|improve this answer

























                            2












                            2








                            2







                            SELECT *
                            FROM datatable
                            ORDER BY CASE WHEN field2 IS NULL THEN field1 ELSE field2 END, -- sort groups
                            CASE WHEN field2 IS NULL THEN 1 ELSE 2 END, -- move parent first
                            field2 -- sort childs





                            share|improve this answer













                            SELECT *
                            FROM datatable
                            ORDER BY CASE WHEN field2 IS NULL THEN field1 ELSE field2 END, -- sort groups
                            CASE WHEN field2 IS NULL THEN 1 ELSE 2 END, -- move parent first
                            field2 -- sort childs






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Apr 10 at 4:53









                            AkinaAkina

                            5,1611411




                            5,1611411





















                                2














                                All answers so far rely on an assumption that there are no further levels of "generated from" (e.g. there is no 382 generated from the 381 which is itself generated from 352 - or which was it).



                                They should know what is said of "assume", so they should have asked you about this first.



                                If you can indeed have further levels of "generated from", then you need a recursive query to do the full path construction ("352" , "352/381" , "352/381/382" , etc etc) and ORDER BY that full path.






                                share|improve this answer



























                                  2














                                  All answers so far rely on an assumption that there are no further levels of "generated from" (e.g. there is no 382 generated from the 381 which is itself generated from 352 - or which was it).



                                  They should know what is said of "assume", so they should have asked you about this first.



                                  If you can indeed have further levels of "generated from", then you need a recursive query to do the full path construction ("352" , "352/381" , "352/381/382" , etc etc) and ORDER BY that full path.






                                  share|improve this answer

























                                    2












                                    2








                                    2







                                    All answers so far rely on an assumption that there are no further levels of "generated from" (e.g. there is no 382 generated from the 381 which is itself generated from 352 - or which was it).



                                    They should know what is said of "assume", so they should have asked you about this first.



                                    If you can indeed have further levels of "generated from", then you need a recursive query to do the full path construction ("352" , "352/381" , "352/381/382" , etc etc) and ORDER BY that full path.






                                    share|improve this answer













                                    All answers so far rely on an assumption that there are no further levels of "generated from" (e.g. there is no 382 generated from the 381 which is itself generated from 352 - or which was it).



                                    They should know what is said of "assume", so they should have asked you about this first.



                                    If you can indeed have further levels of "generated from", then you need a recursive query to do the full path construction ("352" , "352/381" , "352/381/382" , etc etc) and ORDER BY that full path.







                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered Apr 10 at 11:45









                                    Erwin SmoutErwin Smout

                                    1,421812




                                    1,421812



























                                        draft saved

                                        draft discarded
















































                                        Thanks for contributing an answer to Database Administrators Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid


                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.

                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function ()
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f234368%2forder-table-by-two-columns%23new-answer', 'question_page');

                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

                                        Tähtien Talli Jäsenet | Lähteet | NavigointivalikkoSuomen Hippos – Tähtien Talli

                                        Do these cracks on my tires look bad? The Next CEO of Stack OverflowDry rot tire should I replace?Having to replace tiresFishtailed so easily? Bad tires? ABS?Filling the tires with something other than air, to avoid puncture hassles?Used Michelin tires safe to install?Do these tyre cracks necessitate replacement?Rumbling noise: tires or mechanicalIs it possible to fix noisy feathered tires?Are bad winter tires still better than summer tires in winter?Torque converter failure - Related to replacing only 2 tires?Why use snow tires on all 4 wheels on 2-wheel-drive cars?