小编Gre*_*egD的帖子

查询存储过程的结果

我有一个返回大量结果的存储过程,并希望有一种更好的方法来调试/解析结果,而不是复制/粘贴到excel或其他任何东西 - 有没有办法将过程的结果传递给查询?例如,如果程序调用是这样的:

exec database..proc 'arg1','arg2','arg3'
Run Code Online (Sandbox Code Playgroud)

我的想法是做一些像:

select distinct column1 from 
(exec database..proc 'arg1','arg2','arg3')
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,或者我不会在这里.如果重要,那就是sybase数据库.

谢谢!

sql sybase stored-procedures

6
推荐指数
1
解决办法
1万
查看次数

如何从插件将超链接写入Eclipse控制台

我想将文件的位置作为超链接写入eclipse控制台。当您单击它时,应在eclipse中打开文件。我目前正在做类似的事情(但链接未显示)

console = new MessageConsole("myconsole", null);
console.activate();
ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ console });

IPath path = Path.fromOSString(filePath);
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
FileLink fileLink = new FileLink(file, null, 0, 0, 0);
console.addHyperlink(fileLink, 0, 0);
Run Code Online (Sandbox Code Playgroud)

我可能不应该为偏移量,文件长度参数等传递0。

任何帮助表示赞赏。

eclipse eclipse-plugin

3
推荐指数
1
解决办法
7698
查看次数

不应该返回T-SQL查询返回项目

这是场景.有问题的列称为'datein',它的类型是'datetime'.对于'datein',我有三行,值为'2009-10-01 00:00:00.000'.为什么此查询返回上述行?

SELECT  *
FROM    t_call AS tc
WHERE   tc.datein >= '2009-09-30 00:00:00.000'
        AND tc.datein <= '2009-09-30 23:59:59.999'
Run Code Online (Sandbox Code Playgroud)

运用

SELECT  *
FROM    t_call AS tc
WHERE   tc.datein BETWEEN '2009-09-30 00:00:00.000'
        AND '2009-09-30 23:59:59.999'
Run Code Online (Sandbox Code Playgroud)

返回相同的结果

sql t-sql sql-server sql-server-2000

2
推荐指数
1
解决办法
343
查看次数

如何在TSQL中缩短长UNION ALL查询

我需要缩短这个查询,虽然我擅长SQL,但我还在学习.

    SELECT
        'doejoh',
        DATETIME,
        [Recipient-Address], [Message-Subject], [Sender-Address] 
    FROM
        dbo.Logs 
    WHERE
        LEFT([Recipient-Address], 6) IN ('doejoh') 
UNION ALL 
    SELECT
        'doejoh',
        DATETIME,
        [Recipient-Address], [Message-Subject], [Sender-Address] 
    FROM
        dbo.Logs 
    WHERE
        LEFT([Recipient-Address], 10) IN ('john.doe@g') 
UNION ALL 
    SELECT
        'doejoh',
        DATETIME,
        [Recipient-Address], [Message-Subject], [Sender-Address] 
    FROM
        dbo.Logs 
    WHERE
            LEFT([Sender-Address], 6) IN ('doejoh') 
    UNION ALL 
    SELECT
        'doejoh',
        DATETIME,
        [Recipient-Address], [Message-Subject], [Sender-Address] 
    FROM
        dbo.Logs 
    WHERE
            LEFT([Sender-Address], 10) IN ('john.doe@g')
    ORDER BY
        DateTime
Run Code Online (Sandbox Code Playgroud)

我必须使用这个联合,因为在同一个表中,每个用户及其电子邮件地址有4种不同的可能性.话虽这么说,我有30个用户,所以在整个查询中30x4将是120个组.第一列必须是用户名的原因是因为我在Crystal Report中使用该列.

我只是想为我的查询创建一些逻辑来缩短它,同时将每个用户"分配"到适当的第一列.

编辑添加

虽然这会缩短我的查询,但我仍然需要有30个工会:

SELECT
   'doejoh',
   DATETIME,
   [Recipient-Address], [Message-Subject], [Sender-Address] 
FROM
   dbo.Logs 
WHERE
   LEFT([Recipient-Address], 6) IN ('doejoh') …
Run Code Online (Sandbox Code Playgroud)

t-sql logic

1
推荐指数
1
解决办法
332
查看次数

适用于Oracle的最佳ORM工具,具有4000个表

我正在寻找可与Oracle和SQL Server 2005一起使用的最佳.Net ORM工具.我们有一个包含大约4000个表的Oracle数据库.我尝试使用TierDeveloper和Codesmith,当我尝试使用Oracle DB映射对象时,他们没有响应.哪个是与大型Oracle数据库一起使用的最佳ORM工具?

orm

0
推荐指数
1
解决办法
8419
查看次数

TSQL:返回具有最早日期的行

给定了两个名为"table1"和"table1_hist"的表,结构上类似于:

TABLE1
id  status  date_this_status
1   open    2008-12-12
2   closed  2009-01-01
3   pending 2009-05-05
4   pending 2009-05-06
5   open    2009-06-01


TABLE1_hist
id  status  date_this_status
2   open    2008-12-24
2   pending 2008-12-26
3   open    2009-04-24
4   open    2009-05-04
Run Code Online (Sandbox Code Playgroud)

如果table1是当前状态而table1_hist是table1的历史表,那么如何为每个具有最早日期的id返回行.换句话说,对于每个id,我需要知道它的最早状态和日期.

EXAMPLE:

For id 1 earliest status and date is open and 2008-12-12.
For id 2 earliest status and date is open and 2008-12-24.
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用MIN(日期时间),工会,动态SQL等等.我今天刚刚到达tsql编写器块并且我被卡住了.

编辑补充: 呃.这是针对SQL2000数据库的,所以Alex Martelli的答案是行不通的.直到SQL2005才引入ROW_NUMBER.

sql t-sql

0
推荐指数
1
解决办法
6485
查看次数