选择光标中的语句

2024-01-07

我们可以在游标中使用选择查询吗?

Example:

CREATE PROCEDURE try  
AS  
            SET NOCOUNT ON  
Declare     @dname nvarchar(50),  
            @ename nvarchar(50),  
            @esal int


Declare curP cursor For

select d.dname,e.ename,e.sal from dept d,emp e where e.deptno=d.deptno

OPEN curP  
Fetch Next From curP Into @dname, @ename,@esal

While @@Fetch_Status = 0 Begin


select dname from curp          // this is it possible?i dont want to use print bcs i want                        to display data in tabular form  



Fetch Next From curP Into @dname,@ename,@esal

End -- End of Fetch

Close curP
Deallocate curP

如果你想用光标来做到这一点:

CREATE PROCEDURE try  
AS  
            SET NOCOUNT ON  
Declare     @dname nvarchar(50)


DECLARE curP CURSOR FOR

SELECT d.dname FROM dept d

OPEN curP  
FETCH NEXT FROM curP INTO @dname

WHILE @@Fetch_Status = 0 

BEGIN

    SELECT 0 AS OrderBy, @dname , '' AS sal
    union
    SELECT 1, 
           ename , 
           CONVERT(VARCHAR,sal) AS sal
    FROM   emp
    WHERE  deptno = @dname
    ORDER BY OrderBy

    FETCH NEXT FROM curP INTO @dname

End 

Close curP
Deallocate curP

上述结果将导致:

╔══════════╦═══╗
║ Tech     ║   ║
║ Vikrant  ║ 5 ║
║ Nimesh   ║ 2 ║
╚══════════╩═══╝  
╔══════════╦═══╗
║ Creative ║   ║
║ Memo     ║ 6 ║
║ Sabir    ║ 5 ║
╚══════════╩═══╝  

会有另一种思考方式:

;WITH DeptsCTE AS
(
    SELECT deptno,
           dname,
           ROW_NUMBER() OVER (ORDER BY deptno) AS rn
    FROM   dept
)
SELECT dname, 
       sal
FROM   
(
    SELECT D.rn,
           0 AS drn,
           dname, 
           '' AS sal
    FROM   DeptsCTE  D
    UNION
    SELECT D.rn,
           1 AS drn,
           ename , 
           CONVERT(VARCHAR,sal) AS sal
    FROM   emp E
           JOIN DeptsCTE D
               ON D.deptno = E.deptno 
) AS T    
ORDER BY rn,drn
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择光标中的语句 的相关文章

随机推荐

  • Amazon DynamoDB——特定于区域的连接

    我正在使用botoPython 中的库用于连接到 DynamoDB 以下代码对我来说效果很好 import boto key abc secret 123 con boto connect dynamodb key secret table
  • 如何防止跟踪的配置文件被 git 中的合并更改?

    我有一个 Web 项目 有两个 git 分支 开发和生产 每个分支连接到不同的服务器 开发和生产 每个分支都有一组跟踪的配置文件 例如不同的 URL 数据库选项 sql 导出文件等 这些文件在两个分支上都是不同的 每次我尝试合并这些分支时
  • 按对象类型进行 LINQ 选择

    我有一个包含两种类型的对象 A 和 B 的集合 Class Base Class A Base Class B Base List collection new List collection Add new A collection Ad
  • 关于 Swagger API 的建议

    我正在使用 SpringBoot 和 Spring REST 服务使用 Java 8 构建 API 我刚刚发现了 Swagger API 现在我想让我的 API Swagger 兼容 据我所知 Swagger 是一个记录 API 的工具 除
  • 从 Azure Cosmos DB 导出数据(其中类型为 MongoDB API)

    我需要将数据以 CSV 或 JSON 格式从 Azure Cosmos DB 导出到本地系统 有人能帮我吗 你可以使用cosmos 数据库迁移工具 https learn microsoft com en us azure cosmos d
  • 分隔来自套接字的数据

    在我的 Java 应用程序中 有一个 Socket 打开 并且正在从其 InputStream 读取数据 在最佳条件下 每个传入的数据包都会调用 read 返回其应用层数据 这就是我想要得到的 每一条 消息 packet 但是 数据可能会根
  • 如何调用离用户最近的云函数

    我有一个像这样的云函数 它已设置为在多个区域运行 export const cloudFunction functions region asia south1 us central1 europe west1 southamerica e
  • Android Firebase如何在特定用户下保存和检索数据

    我正在尝试将我的应用程序与 firebase 集成以在云上保存简单数据 Example 用户打开应用程序并登录 用户写一些东西 数据保存在云端 当用户再次使用该应用程序时 他将看到他的数据 我已阅读文档 但我找不到任何示例 结构在用户和数据
  • Dapper:具有重复列名称的多重映射

    我有一个看起来像这样的表 ID ERR1 ERR2 ERR3 05A2 A001 B223 C212 06B3 B392 C234 D234 我想将其映射到如下所示的对象 public class Entry public string I
  • 如何在没有 UIWebView 的情况下播放 youtube 视频或当 youtube 视频开始使用 webview 播放时检测视频播放器?

    我需要在我的 iOS 应用程序中播放 YouTube 视频 并且在播放视频时我需要在视频上添加叠加层 1 现在如何在本机播放器中运行 youtube 视频 2 如果我在 UIWebview 中播放视频 那么我如何检测该视频是 播放以及如何在
  • 使用gdb查找程序卡在哪里

    我的程序无法正常工作 看起来它陷入了无限循环或错误的互斥锁定 解锁 但是 我不知道错误在哪里 我尝试使用 gdb 进行调试 我无法使用 gdb backtrace 命令 因为我没有指定断点 我无法指定它 因为我不知道错误在哪里 gdb 有
  • Awesome-wm 中特定标签下的应用程序自动启动

    我读过了在 Awesome wm 中为特定应用程序设置窗口布局 https stackoverflow com questions 5120399 setting windows layout for a specific applicat
  • NuGet - 从命令行添加新的包源

    我有一个场景 我在 VSTS 中创建构建 我无权访问托管代理的虚拟机 并且未将其设置为包含我们的内部包源 我确实可以通过命令行 powershell 进行访问 如何通过命令行向 VS2017 添加新的包源 或者我什至可以这样做 您可以使用
  • symfony 4 设置以匿名身份登录

    我正在研究一个Symfony 4项目 尝试登录后 它使用匿名令牌将我重定向回登录页面 我的设置是使用来自的登录表单symfony docs 单击登录后 我的会话只有csrf authenticate属性 有什么想法我做错了什么吗 安全 ya
  • 企业架构师显示奇怪的符号。这是什么意思?

    有时 我在开始更详细的 UML 工作和开发之前构建的一些 不是全部 需求工件上会出现一个红色三角形 我不知道是什么原因造成的 也不知道它想表达什么 更重要的是 我无法摆脱它 据我所知 这与 UML 或 SysML 规范无关 是吗 谁能解释一
  • 对话框布局双层错误透明背景

    我想制作一个白色的 无边框的弹出视图 为了实现此目的 我使用具有自定义样式的自定义对话框 public Builder createNewDialog int type AlertDialog Builder dlg null switch
  • 如何以编程方式设置和启动 Scrapy 蜘蛛(url 和设置)

    我用 scrapy 写了一个工作爬虫 现在我想通过Django webapp来控制它 也就是说 设置1个或多个start urls 设置1个或多个allowed domains Set settings values 启动蜘蛛 停止 暂停
  • Windows 中的 cmake 和 make

    据我所知 在linux cmake中 make和make install可以组合在一起生成一个版本 例如 cmake DCMAKE BUILD TYPE Release make make install 然而 在 Windows 中 我找
  • 调用客户端重定向后会话属性丢失

    以前 servlet 使用response sendRedirect pages my page jsp foo bar 没有问题 可以在重定向到的后续页面中检索会话属性 目前 我正在更改发送请求的方式 最初 Javascript 使用my
  • 选择光标中的语句

    我们可以在游标中使用选择查询吗 Example CREATE PROCEDURE try AS SET NOCOUNT ON Declare dname nvarchar 50 ename nvarchar 50 esal int Decl