您现在的位置是:网站首页> 编程资料编程资料
SQL 特殊语句(学习笔记)_MsSql_
2023-05-26
433人已围观
简介 SQL 特殊语句(学习笔记)_MsSql_
【1】 以XML 返回
(1)未定义属性的
select logisticsId,logisticsName from LogisticsCompany for xml auto,elements
(2)定义属性节的
SELECT TOP 21 AS Tag,
NULL AS Parent,
title_id AS [titles!1!title_id],
title AS [titles!1!title!element],
type AS [titles!1!type]
FROM
titles
FOR XML EXPLICIT
【2】处理大批量数据的添加
CREAT PROCEDURE [dbo].[Sp_DB_InsertBatch]
(
@LogXml NVARCHAR(MAX),
@LastTime DATETIME,
@CurrentTime DATETIME
)
AS
BEGIN
BEGIN TRAN
BEGIN TRY
--使用OPENXML()需要一个准备动作:
--定义一个文档指针@XMLHandler,类型为int(SP_XML_PREPAREDOCUMENT)。
--使用完后还需要把它释放掉(SP_XML_REMOVEDOCUMENT)
DECLARE @XMLHandler INT;
--OPENXML()本身返回一个行集,并且需要3个参数和一组列映射定义。
--预先准备好的文档指针@XMLHandler,搜索路径起点,映射标志。
EXEC SP_XML_PREPAREDOCUMENT @XMLHandler OUTPUT,@LogXml;
INSERT INTO [dbo].[DBRate]
([RateID]
,[LastModifyTime]
,[LastTime]
,[CurrentTime])
SELECT [RateID]
,[LastModifyTime]
,@LastTime
,@CurrentTime
FROM OPENXML(@XMLHandler,'/DB/DBRate',2)
WITH( RateID INT
,LastModifyTime DATETIME
)
--释放掉(SP_XML_REMOVEDOCUMENT)
EXEC SP_XML_REMOVEDOCUMENT @XMLHandler;
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
END
【3】转换类型
select convert(int,'100.1')
select cast('100' as int)
截取并替换其他字符
select stuff('1347097110',5,6,'*******')
获取ID为4附近的四条数据
select top 4 * from Student order by abs(4-id)
分组获取 select * from (select Row_Number() Over(partition by sex order by ID) as rowindex,* from Student) a where rowindex<5
联表删除数据 deletefrom Souce from Souce inner join Student on Souce.sid = Student.id
(1)未定义属性的
select logisticsId,logisticsName from LogisticsCompany for xml auto,elements
(2)定义属性节的
复制代码 代码如下:
SELECT TOP 21 AS Tag,
NULL AS Parent,
title_id AS [titles!1!title_id],
title AS [titles!1!title!element],
type AS [titles!1!type]
FROM
titles
FOR XML EXPLICIT
【2】处理大批量数据的添加
复制代码 代码如下:
CREAT PROCEDURE [dbo].[Sp_DB_InsertBatch]
(
@LogXml NVARCHAR(MAX),
@LastTime DATETIME,
@CurrentTime DATETIME
)
AS
BEGIN
BEGIN TRAN
BEGIN TRY
--使用OPENXML()需要一个准备动作:
--定义一个文档指针@XMLHandler,类型为int(SP_XML_PREPAREDOCUMENT)。
--使用完后还需要把它释放掉(SP_XML_REMOVEDOCUMENT)
DECLARE @XMLHandler INT;
--OPENXML()本身返回一个行集,并且需要3个参数和一组列映射定义。
--预先准备好的文档指针@XMLHandler,搜索路径起点,映射标志。
EXEC SP_XML_PREPAREDOCUMENT @XMLHandler OUTPUT,@LogXml;
INSERT INTO [dbo].[DBRate]
([RateID]
,[LastModifyTime]
,[LastTime]
,[CurrentTime])
SELECT [RateID]
,[LastModifyTime]
,@LastTime
,@CurrentTime
FROM OPENXML(@XMLHandler,'/DB/DBRate',2)
WITH( RateID INT
,LastModifyTime DATETIME
)
--释放掉(SP_XML_REMOVEDOCUMENT)
EXEC SP_XML_REMOVEDOCUMENT @XMLHandler;
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
END
【3】转换类型
复制代码 代码如下:
select convert(int,'100.1')
select cast('100' as int)
截取并替换其他字符
select stuff('1347097110',5,6,'*******')
获取ID为4附近的四条数据
select top 4 * from Student order by abs(4-id)
分组获取 select * from (select Row_Number() Over(partition by sex order by ID) as rowindex,* from Student) a where rowindex<5
联表删除数据 deletefrom Souce from Souce inner join Student on Souce.sid = Student.id
相关内容
- sqlserver通用的删除服务器上的所有相同后缀的临时表_MsSql_
- SQL Server修改标识列方法 如自增列的批量化修改_MsSql_
- Sql Server 索引使用情况及优化的相关Sql语句分享_MsSql_
- sqlserver中求字符串中汉字的个数的sql语句_MsSql_
- sqlserver中去除字符串中连续的分隔符的sql语句_MsSql_
- Sql Server 2012 分页方法分析(offset and fetch)_MsSql_
- SQL server高级应用 收藏版_MsSql_
- 优化 SQL Server 索引的小技巧_MsSql_
- SqlServer 索引自动优化工具_MsSql_
- sqlserver 查询数据库大小的方法_MsSql_
