小编KM.*_*KM.的帖子

如何在没有UNION的情况下为其子项选择一个父行和其他行?

我有一个父表和子表,并希望创建一个select语句,给定父ID,返回该父项的和每个子项的其他行.当存在一个或多个子节点时,执行左连接并不会为父提供一行.我知道这可以通过UNION完成,但我正在寻找一种使用union语句的解决方案.这可能吗?

[父表]

ID     Name
-------------
1    | Bob
Run Code Online (Sandbox Code Playgroud)

[儿童表]

ID     ParentId   Name
-----------------------
1    | 1        | Jim    
2    | 1        | Ned  
Run Code Online (Sandbox Code Playgroud)

查询结果我正在寻找:

Parent_Name   Child_Name
---------------------------
Bob         | NULL <- I need this null here
Bob         | Jim
Bob         | Ned
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server union parent-child

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

SQL Server 2008 - 条件查询

SQL不是我的强项之一.我有一个SQL Server 2008数据库.此数据库具有一个存储过程,该过程接收八个int参数.为了保持这个问题的重点,我将使用这些参数之一作为参考:

@isActive int
Run Code Online (Sandbox Code Playgroud)

这些int参数中的每一个都是-1,0或1. -1表示"未知"或"不关心".基本上,我需要查询一个表,如果int参数是非-1,我需要在我的WHERE子句中考虑它.因为有8个int参数,所以IF-ELSE语句似乎不是一个好主意.与此同时,我不知道怎么做呢?

如果参数不等于值,在SQL中是否有一种优雅的方式来添加WHERE条件?

谢谢!

sql t-sql sql-server sql-server-2008

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

什么时候索引统计上次更新了?

是否有一种快速简便的方法来列出数据库中的每个索引最后更新其统计信息?首选答案是查询.此外,是否可以确定统计数据的"质量":FULLSCAN,SAMPLE n等.

编辑
这适用于我需要的东西,@OrbMan的一个小模块很棒的答案......

SELECT
    STATS_DATE(i.object_id, i.index_id) AS LastStatisticsDate
        ,o.Name AS TableName
        ,i.name AS IndexName
    FROM sys.objects            o
        INNER JOIN sys.indexes  i ON o.object_id = i.object_id
    WHERE o.is_ms_shipped=0
    ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud)

sql-server indexing maintenance sql-server-2005

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

如何在CLR触发器中获取当前正在执行的命令的sql server用户名?

我知道SqlContext.WindowsIdentity返回正在执行命令的当前用户(在CLR触发器中),但是,这仅适用于经过Windows身份验证的用户.如果是sql server用户,我如何获得用户名?任何帮助表示赞赏.

sql-server sqlclr

3
推荐指数
2
解决办法
2万
查看次数

将CSV导入SQl Server 2005的最简单方法

我有几个文件,每个我需要导入SQL Server 2005的CSV数据大约5k.

这对于DTS来说过去很简单.我之前试过使用SSIS,它似乎是努力的10倍,我最终放弃了.

将csv数据导入sql server最简单的方法是什么?理想情况下,工具或方法也会创建表,因为其中有大约150个字段,这将简化操作.

有时使用此数据,可能需要手动修改1或2行,因为它们未正确导入.

sql-server csv import etl sql-server-2005

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

存储过程执行非常严重 - 增加超时或修复问题

我继承了第三方编写的前端.该前端通过不同第三方编写的程序与Oracle交互.有问题的存储过程需要2分36秒才能在手动执行时返回搜索结果.我看不到该过程,该团队建议我增加Web应用程序中的超时(托管在共享服务器上).

在我的世界中,超过30秒的任何事情都需要在部署到生产之前进行性能修复,只有少数例外(遗留代码,疯狂报告等).建议给我的选项是将超时从30秒(由前端开发人员明确添加)增加到180秒.

我向您提出的问题: 采用简单方法和增加超时有什么风险?如果可能,请提供支持您观点的文章的链接,以便我可以参考.

如果你认为这是一个非问题,也可以随意加入.

sql oracle performance

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

使用今天的日期附加SQL表名

据我所知,我可以使用以下sp更改sql表:

EXEC sp_rename 'customers', 'custs'
Run Code Online (Sandbox Code Playgroud)

我如何附加这个以便新表的今天的日期作为后缀?

我尝试了以下主题的变化,但收效甚微!

EXEC sp_rename 'customers', 'customers +(CONVERT(VARCHAR(8),GETDATE(),3))'
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.

t-sql sql-server

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

SQL Server 2005:EXEC中的子查询?

EXEC [dbo].[pr_cfgAddFact] 
@SettingName = 'TransferBatch', 
@RoleFK = SELECT TOP 1 rolepk FROM cfgRole WHERE cfgRole.Name = 'SuperAdmin'
Run Code Online (Sandbox Code Playgroud)

为什么SQL会在这里抱怨SELECT子句?我试图用子查询获取数据运行proc.

sql-server stored-procedures sql-server-2005 exec subquery

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

如何为SUM列指定名称?

如何为SUM列分配列名?

select OwnerUserId, SUM(PostScore)
INTO Experts
from ...
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

对象或列名称缺失或为空.对于SELECT INTO语句,请验证每列是否具有名称.对于其他语句,请查找空别名.不允许使用定义为""或[]的别名.将别名更改为有效名称.

我猜因为包含SUM结果的列没有名称.

sql-server

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

TSQL递归更新?

我想知道在tsql(CTE)中是否存在递归更新

ID  parentID value
--  -------- -----
1   NULL     0
2   1        0
3   2        0
4   3        0
5   4        0
6   5        0
Run Code Online (Sandbox Code Playgroud)

我可以value使用例如从ID = 6的CTE到最顶行来递归地更新列吗?

t-sql recursion common-table-expression

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