SQL查询-将列转换成字符串(for xml path)
背景最近做一报表,因为查询的SQL很长很复杂,导致直接查询出现异常,后来想到将大量重复的只是查询条件不同的子查询放到函数中去做,无奈需要的参数不能传进函数中,因为参数格式类似如:’ProjGUID1’,’ProjGUID2’ 这样,这是报表工具生成的,无法修改。现在就要想办法让参数能传进函数中或是换用其他的方式。 思路1、首先想到的是用存储过程,但是在报表工具中调试不通,存储过程不能得到有效...
在SQL查询中使用LIKE来代替IN
在SQL查询中根据已知ID的集合来查询结果我们通常会用到IN,直接在IN后面给出ID的集合或是在IN后面跟一个子查询。如下: 12SELECT * FROM OrdersWHERE OrderGUID IN('BC71D821-9E25-47DA-BF5E-009822A3FC1D','F2212304-51D4-42C9-AD35-5586A822258E...
SqlServer表死锁的解决方法
前些天写一个存储过程,存储过程中使用了事务,后来我把一些代码注释掉来进行调试找错,突然发现一张表被锁住了,原来是创建事务的代码忘记注释掉。本文表锁住了的解决方法。 其实不光是上面描述的情况会锁住表,还有很多种场景会使表放生死锁,解锁其实很简单,下面用一个示例来讲解: 1 首先创建一个测试用的表: 1234CREATE TABLE Test( TID INT IDENTITY(1,1))...
使用sp_xml_preparedocument处理XML文档
有时会在存储过程中处理一些XML格式的数据,所以会用到sp_xml_preparedocument,他可以将XML数据进行读取,然后使用 MSXML 分析器 (Msxmlsql.dll) 对其进行分析。我们就可以很容易的在存储过程中得到XML中我们想要的数据。下面的代码就是使用sp_xml_preparedocument读取XML: 12345678910111213141516DECLAR...
SqlServer数据库的语句及一些操作整理
临近年终,在工作之余对工作和学习中遇到的问题以及常用的一些知识点做了些整理,以备后用。本文涉及的内容为数据库,算是对开发总结(1)—数据库一文的补充。 1 对于主键设置了Identity的表,在删除表中数据后再往表中插入数据,Identity列不是从1起始了,如果想删除数据后Indentity列仍从1起始,可以用下面代码来删除数据。 12truncate table tablenameDBC...
在数据库中将字表中的多行合并到一列中
几年前就做过这样的查询,在最近的项目中又遇到这样的需求,在此记录一下。 假设有一个文章表Post和一个评论表Comments,可以对文章进行多次评论,现在希望在对Post表查询时能将Post的所有评论内容组合到一个字段中显示。 首先创建表Post和Comments 123456789101112131415create table Post( [PostID] int identity...
SQL 计算一個字符串在另一个字符串中出現的次数
在sqlserver中來計算一個字符串在另一個字符串中出現的次數,通常會去用循環來匹配,然後計算出出現的次數,這樣的效能不是很高。現在講一種比較簡單的方法也能實現同樣的功能,思路如下: