sqlserver 表A存在 _tid 字段, _tid相同数据可能有多条, 根据createTime字段取最新一条_tid数据
时间: 2024-02-03 18:13:21 浏览: 27
可以使用以下 SQL 语句来实现:
```sql
SELECT *
FROM A
WHERE createTime = (
SELECT MAX(createTime)
FROM A
WHERE _tid = A._tid
)
```
这个语句使用了一个子查询来获取每个 `_tid` 对应的最新的 `createTime` 值,然后在外部查询中使用这个值来选择符合条件的行。这样就能取出每个 `_tid` 最新的一条数据了。
相关问题
sqlserver有表formtable_main_294, 表中cgrkbxid字段会有重复数据,但每条cgrkbxid数据会有不同更新时间createTime字段区分, 如何取出所有cgrkbxid字段, 且均为最新更新时间的数据
可以使用子查询或者联合查询的方式来实现这个需求。
方法一:使用子查询
```
SELECT *
FROM formtable_main_294 a
WHERE createTime = (
SELECT MAX(createTime)
FROM formtable_main_294 b
WHERE a.cgrkbxid = b.cgrkbxid
)
```
方法二:使用联合查询
```
SELECT a.*
FROM formtable_main_294 a
INNER JOIN (
SELECT cgrkbxid, MAX(createTime) AS createTime
FROM formtable_main_294
GROUP BY cgrkbxid
) b ON a.cgrkbxid = b.cgrkbxid AND a.createTime = b.createTime
```
sqlserver写一个sql,有createTime,updateTime连个字段,返回其中最大得时间得那条数据
可以使用以下SQL代码:
SELECT TOP 1 *
FROM your_table
ORDER BY updateTime DESC, createTime DESC
这会返回最新的updateTime,如果updateTime相同,则返回最新的createTime。