sql - 如何使用 sql server 在特定列 wrt 插入顺序上有所不同?
问题描述
这里我有一个 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
-------------------
我希望像下面这样的输出只有带有插入顺序 wrt parent_id 的元素
-------------
element
------------
La
Ce
Pr
Nd
Sm
------------
为此,我将代码编写为
SELECT * FROM (SELECT distinct(element) from mytable where
parent_id=1) A ORDER BY NEWID()
有了这个,我得到了输出
element
------------
La
Ce
Nd
sm
pr
------------
这不是我想要的,请帮助我如何通过插入的顺序获取元素
解决方案
您可以使用GROUP BY
而不是DISTINCT
SELECT element
FROM mytable
WHERE parent_id=1
GROUP BY element
ORDER BY MIN(id)
推荐阅读
- c - 将变量更新/写入到 ObjectNode
- postgresql - 如何修复“无法解码八位字节序列#(130)”。在 pgloader
- c# - 未使用 ScriptResourceDefinition 路径
- laravel - Laravel 如何使用响应 json 返回视图数据(均 1 次)?
- python - ValueError:数组的长度必须相同 - 将数据帧打印到 CSV
- css - 我怎样才能让这个东西响应
- java - 如何忽略 SSL 证书 Java
- tensorflow - 以设定的比例混合数据集
- javascript - 如何在 RxJS 中创建一个 observable,它等待 2 个 observables(按顺序),然后行动,然后再按顺序等待这 2 个
- react-native - 学习项目