SQL:创建基于日期创建职位的视图
我实际上在运行oracle,但当我将我的示例复制到sqlfiddle中时,如果我选择oracle而不是mysql,它将不会运行,也许oracle的fiddle版本与我的不同。 这给了我位置测试表:SQL:创建基于日期创建职位的视图,sql,views,Sql,Views,我实际上在运行oracle,但当我将我的示例复制到sqlfiddle中时,如果我选择oracle而不是mysql,它将不会运行,也许oracle的fiddle版本与我的不同。 这给了我位置测试表: ID CODE REGISTRATIONDATE 01 COM002 2012-12-11 02 COM002 2012-12-12 01 COM003 2012-12-11 我想创建一个如下所示的视图: ID
ID CODE REGISTRATIONDATE
01 COM002 2012-12-11
02 COM002 2012-12-12
01 COM003 2012-12-11
我想创建一个如下所示的视图:
ID CODE POSITION
01 COM002 1
02 COM002 2
01 COM003 1
只要有,顺序并不重要
每个代码都有一个uniqe位置。您想要
行号()
函数:
SELECT ID, code, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY CODE)
FROM Positiontest
select pt.*,
row_number() over (partition by code order by code) as Position
from PositionTest pt
它在SQLFIDLE上不起作用,因为您依赖于隐式数据类型转换
'2012-12-11'
不是日期,而是根据区域设置转换的字符文本。如果您使用日期文字或to_date()函数,它将起作用,例如:不知道,谢谢:)
select pt.*,
row_number() over (partition by code order by code) as Position
from PositionTest pt