使用SQL从表中获取单个记录 [英] Fetch single record from a table using SQL
问题描述
我正在尝试编写一个能够区分此表记录的查询
没有日期标志
1 2016-10-31 Y
1 2016-11-30 Y
2 2014-10-31 Y
1 2015-10-31 Y
2 2013-10-31 Y
1 2012-10-31 Y
2 2011-10-31 Y
3 2016-08-31 Y
3 2016-01-31 Y
1 2016 -03-31 Y
2 2015-10-31 Y
3 2014-10-31 Y
到这个
没有日期标志
1 2016-11-30 Y
2 2015-10- 31 Y
3 2016-08-31 Y
这里唯一的问题是没有主键存在;我应该在临时表中获取此记录然后尝试?请建议。
提前致谢。
我的尝试:
以上记录我已转入临时表;但之后不知道。
在这里尝试使用Row_number。
喜欢这样:
; WITH CTE AS (
SELECT [NO],[ DATE ],FLAG
,ROW_NUMBER() OVER ( PARTITION BY [NO] ORDER BY [ DATE ] DESC ) AS ROW_NUM
FROM TABLE_NAME
)
SELECT [NO ],[ DATE ],FLAG FROM CTE WHERE ROW_NUM = 1 跨度>;
Hi,
I'm trying to write a query which will distinguish records from this table
No Date Flag
1 2016-10-31 Y
1 2016-11-30 Y
2 2014-10-31 Y
1 2015-10-31 Y
2 2013-10-31 Y
1 2012-10-31 Y
2 2011-10-31 Y
3 2016-08-31 Y
3 2016-01-31 Y
1 2016-03-31 Y
2 2015-10-31 Y
3 2014-10-31 Y
to this
No Date Flag
1 2016-11-30 Y
2 2015-10-31 Y
3 2016-08-31 Y
The only problem here is no primary key exists; should I fetch this record in a temp table and then try? Please suggest.
Thanks in advance.
What I have tried:
the above records I've shifted into a temp table; but no idea after that.
Hi,
Try using Row_number here.
Like this :
;WITH CTE AS ( SELECT [NO],[DATE],FLAG ,ROW_NUMBER() OVER(PARTITION BY [NO] ORDER BY [DATE] DESC) AS ROW_NUM FROM TABLE_NAME ) SELECT [NO],[DATE],FLAG FROM CTE WHERE ROW_NUM = 1;
这篇关于使用SQL从表中获取单个记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!