曾经一位朋友问我这样一个问题:怎样在查询出来的结果集中增加一个新列(有规律)?
如:数据库中的结构和数据如下: (tableName : People)
Name Age
changchang 20
charles 23
sunny 21
huangzhs 22
dazu 65
现在通过SQL语句把查询的结果显示成:
Id Name Age
1 changchang 20
2 Charles 23
3 sunny 21
4 huangzhs 22
5 dazu 65
首先分析这道题目:(动态的增加新的一列(递增))
要在查询结果集中增加一个新列。而我们通过 select * from People 是没有ID这列的。
所以我们需要在查询出来的结果集中增加(一行一行增加).
实现要牵涉到的技术:
首先想到的是通过游标来实现(游标可以遍历结果集中的每一条记录)。
另外我们可以通过创建临时表或表变量来放增加新的列后的数据。
最后通过查询临时表就可以让查询结果中包含新增加的一列.
现在通过sql语句来实现上面的效果:
--定义参数
declare @i int
declare @name varchar(50)
declare @age int

--声明一个游标
declare c_people cursor
for select * from people

--打开游标
open c_people

--创建一个临时表
create table #mypeople
(Id int,
Name varchar(50),
Age int)

set @i=1
--读取数据
fetch next from c_people into @name,@age
while @@fetch_status=0
begin
--动态的增加新的一列到临时表
insert into #mypeople
values(@i,@name,@age)
set @i=@i+1
fetch next from c_people into @name,@age
end
--关闭游标
close c_people
--删除游标
deallocate c_people
--查询临时表
select * from #mypeople
--删除临时表
drop table #mypeople
以上是我想到的实现方法。当然看来还是比较复杂的。如果有什么简单的方案。希望朋友们能及时的提出。分享知识是我最大的快乐。
如:数据库中的结构和数据如下: (tableName : People)
Name Age
changchang 20
charles 23
sunny 21
huangzhs 22
dazu 65
现在通过SQL语句把查询的结果显示成:
Id Name Age
1 changchang 20
2 Charles 23
3 sunny 21
4 huangzhs 22
5 dazu 65
首先分析这道题目:(动态的增加新的一列(递增))
要在查询结果集中增加一个新列。而我们通过 select * from People 是没有ID这列的。
所以我们需要在查询出来的结果集中增加(一行一行增加).
实现要牵涉到的技术:
首先想到的是通过游标来实现(游标可以遍历结果集中的每一条记录)。
另外我们可以通过创建临时表或表变量来放增加新的列后的数据。
最后通过查询临时表就可以让查询结果中包含新增加的一列.
现在通过sql语句来实现上面的效果:





































以上是我想到的实现方法。当然看来还是比较复杂的。如果有什么简单的方案。希望朋友们能及时的提出。分享知识是我最大的快乐。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述