sql-server - SQL Server:主键上的row_number
问题描述
有什么方法可以创建column
将在主键上增加和重置?
例子:
表 A([代码]、[类型]、[行号_])
主键是([Code], [Type])
当我添加一个新行时,我想像这样自动生成[Line No_]
:
Code Type Line No_
-----------------------
'U1' 0 1000
'U1' 0 2000
'U1' 1 1000
类似ROW_NUMBER
但在插入行上自动生成的东西
解决方案
不,您不能在计算列中使用窗口函数。计算列必须是标量值。但是,这是视图的完美用例。
create table myTable ([Code] varchar(20),[Type] int)
go
insert into myTable
values
('U1',0)
,('U1',0)
,('U1',1)
go
create view MyView
as
select *
,Line_No = row_number() over (partition by [Code], [Type] order by (select null)) * 1000
from myTable
go
select * from myView
推荐阅读
- python - 'application/octet-stream' 而不是 application/csv?
- unix - 查找目录
- microsoft-graph-api - 以用户身份在 Teams 聊天/频道中发送消息
- javascript - 为什么我的谷歌网络应用程序在点击警报后会变黑
- xml - 如何在 XSD xsi:schemaLocation 相对路径中指定空格?
- html - 在数据库中插入 HTML
- firebase - allAuthenticatedUsers 对 Firebase Cloud 功能的权限和 CORS 访问
- laravel - Laravel 覆盖登录控制器 login()。如果我覆盖登录控制器,如何检索登录的用户数据。我试图获取 auth() 数据
- java - 如何在 Java 中的 Postgres 本机查询字符串中添加引号
- c# - 如何在 C# 中递归调用 aws lambda 函数