Questions tagged «tsql»

T-SQL(事务结构查询语言)是Sybase ASE和Microsoft SQL Server支持的SQL功能的扩展。请勿将此标签用于MySQL,PostgreSql,Oracle(Pl / SQL)相关查询。请注意,使用LINQ编写的SQL代码也不属于该标签的一部分。该标记是专门为使用Microsoft SQL Server进行高级SQL编程而创建的。


23
在SQL Server中删除日期时间的时间部分的最佳方法
从SQL Server的datetime字段中删除时间部分时,哪种方法提供最佳性能? a) select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) 要么 b) select cast(convert(char(11), getdate(), 113) as datetime) 第二种方法确实会发送更多的字节,但这可能不如转换速度那么重要。 两者看起来都非常快,但是处理成千上万行或更多行时速度可能有所不同? 另外,是否有更好的方法可以消除SQL中日期时间的时间部分?
514 sql  sql-server  tsql  datetime  date 

12
T-SQL:选择要通过联接删除的行
场景: 假设我有两个表TableA和TableB。TableB的主键是单列(BId),并且是TableA中的外键列。 在我的情况下,我想删除TableA中与TableB中的特定行链接的所有行:是否可以通过联接做到这一点?删除从联接中拉入的所有行? DELETE FROM TableA FROM TableA a INNER JOIN TableB b ON b.BId = a.BId AND [my filter condition] 还是我被迫这样做: DELETE FROM TableA WHERE BId IN (SELECT BId FROM TableB WHERE [my filter condition]) 我问的原因是,在我看来,处理较大的表时,第一种选择的效率更高。 谢谢!
494 tsql  join 




28
因为FOREIGN KEY约束正在引用表,所以无法截断它?
使用MSSQL2005,如果我首先截断子表(具有FK关系主键的表),是否可以截断具有外键约束的表? 我知道我可以 使用DELETE无where子句,然后RESEED使用标识(或) 删除FK,截断表,然后重新创建FK。 我以为只要我在父表之前将子表截断,就可以不做上述任何一个选择,但是我会收到此错误: 无法截断表'TableName',因为它已被FOREIGN KEY约束引用。

18
从存储过程的结果集中选择列
我有一个存储过程返回80列和300行。我想编写一个选择,使这些列中有2个。就像是 SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2' 当我使用以上语法时,出现错误: “无效的列名”。 我知道最简单的解决方案是更改存储过程,但是我没有编写它,也无法更改它。 有什么办法可以做我想要的吗? 我可以制作一个临时表来放入结果,但是因为有80列,所以我需要制作一个80列的临时表才能得到2列。我想避免跟踪所有返回的列。 我尝试WITH SprocResults AS ....按照Mark的建议使用,但出现2个错误 关键字“ EXEC”附近的语法不正确。')'附近的语法不正确。 我尝试声明一个表变量,但出现以下错误 插入错误:列名或提供的值数与表定义不匹配 如果我尝试 SELECT * FROM EXEC MyStoredProc 'param1', 'param2' 我得到错误: 关键字“ exec”附近的语法不正确。

7
SQL Server查询-使用DISTINCT选择COUNT(*)
在SQL Server 2005中,我有一个表cm_production,其中列出了已投入生产的所有代码。该表具有ticket_number,program_type,program_name和push_number以及其他一些列。 目标:按程序类型和推送编号计算所有DISTINCT程序名称 到目前为止,我有: DECLARE @push_number INT; SET @push_number = [HERE_ADD_NUMBER]; SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type 这让我感到很困惑,但是它计算的是所有程序名称,而不是不同的名称(我不希望它在该查询中执行)。我想我只是无法解决如何告诉它只选择不同程序名称而不选择它们的问题。或者其他的东西。

7
选择语句以查找某些字段上的重复项
您可以通过SQL语句帮助我在多个字段中查找重复项吗? 例如,用伪代码: select count(field1,field2,field3) from table where the combination of field1, field2, field3 occurs multiple times 从上面的陈述中,如果有多次出现,我想选择除第一个以外的所有记录。

10
在TSQL中替换换行符
我想替换(或删除)TSQL字符串中的换行符。有任何想法吗? 明显的 REPLACE(@string, CHAR(13), '') 只是不会做...
414 tsql  newline 

17
用前导零填充字符串,因此在SQL Server 2008中为3个字符长
在SQL Server 2008 R2中首次创建时,我的字符串最长为3个字符。 我想用前导零填充它,因此,如果其原始值是“ 1”,那么新值将是“ 001”。或者,如果其原始值为'23',则新值为'023'。或者,如果其原始值为“ 124”,则新值与原始值相同。 我正在使用SQL Server 2008 R2。我将如何使用T-SQL做到这一点?
398 sql-server  tsql 


12
是否可以在Count()中指定条件?
是否可以在中指定条件Count()?我只想计算“位置”列中具有“管理器”的行。 我想在count语句中执行此操作,而不要使用WHERE; 我问这个问题,因为我需要计算两个经理和其他在同一个SELECT(像Count(Position = Manager), Count(Position = Other))这样WHERE在这个例子中没有用我。
391 sql  sql-server  tsql 

14
如何在Linq中执行SQL Like%?
我有一个试图转换为Linq的SQL过程: SELECT O.Id, O.Name as Organization FROM Organizations O JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId where OH.Hierarchy like '%/12/%' 我最关心的行是: where OH.Hierarchy like '%/12/%' 我有一列存储例如/ 1/3/12 /之类的层次结构,因此我只使用%/ 12 /%进行搜索。 我的问题是,Linq或.NET与使用百分号等效吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.