如何使用sql server在特定列wrt插入顺序上区分?

sha*_*468 2 sql t-sql sql-server

这里我有一个sql表,如下所示

---------------------------
   id | element | parent_id
---------------------------     
    1  |   La   |    1
    2  |   Ce   |    1
    3  |   Pr   |    1
    4  |   Nd   |    1
    5  |   Sm   |    1
    6  |   La   |    1
    7  |   Ce   |    1
    8  |   Pr   |    1
    9  |   Nd   |    1
   10  |   Sm   |    1
   11  |   La   |    2
   12  |   Ce   |    2
   13  |   Pr   |    2
   14  |   Nd   |    2
   15  |   Sm   |    2
------------------- 
Run Code Online (Sandbox Code Playgroud)

我想像下面的输出只有插入顺序wrt parent_id的元素

-------------
    element 
------------     
    La
    Ce
    Pr
    Nd
    Sm
------------
Run Code Online (Sandbox Code Playgroud)

为此我写了代码为

SELECT * FROM (SELECT distinct(element) from mytable where 
parent_id=1) A ORDER BY NEWID() 
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了输出


    element 
------------     
    La
    Ce
    Nd
    sm
    pr
------------
Run Code Online (Sandbox Code Playgroud)

它不是我想要的,请帮我如何获得插入订单的元素

Ser*_*lan 5

你可以用GROUP BY而不是DISTINCT

SELECT element
FROM mytable 
WHERE parent_id=1
GROUP BY element  
ORDER BY MIN(id)  
Run Code Online (Sandbox Code Playgroud)