SQL 特殊語句(學(xué)習(xí)筆記)
更新時間:2012年05月27日 23:16:28 作者:
SQL 特殊語句(學(xué)習(xí)筆記),以XML 返回,處理大批量數(shù)據(jù)的添加,轉(zhuǎn)換類型等實現(xiàn)
【1】 以XML 返回
(1)未定義屬性的
select logisticsId,logisticsName from LogisticsCompany for xml auto,elements
(2)定義屬性節(jié)的
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】處理大批量數(shù)據(jù)的添加
CREAT PROCEDURE [dbo].[Sp_DB_InsertBatch]
(
@LogXml NVARCHAR(MAX),
@LastTime DATETIME,
@CurrentTime DATETIME
)
AS
BEGIN
BEGIN TRAN
BEGIN TRY
--使用OPENXML()需要一個準(zhǔn)備動作:
--定義一個文檔指針@XMLHandler,類型為int(SP_XML_PREPAREDOCUMENT)。
--使用完后還需要把它釋放掉(SP_XML_REMOVEDOCUMENT)
DECLARE @XMLHandler INT;
--OPENXML()本身返回一個行集,并且需要3個參數(shù)和一組列映射定義。
--預(yù)先準(zhǔn)備好的文檔指針@XMLHandler,搜索路徑起點,映射標(biāo)志。
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】轉(zhuǎn)換類型
select convert(int,'100.1')
select cast('100' as int)
截取并替換其他字符
select stuff('1347097110',5,6,'*******')
獲取ID為4附近的四條數(shù)據(jù)
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
聯(lián)表刪除數(shù)據(jù) deletefrom Souce from Souce inner join Student on Souce.sid = Student.id
(1)未定義屬性的
select logisticsId,logisticsName from LogisticsCompany for xml auto,elements
(2)定義屬性節(jié)的
復(fù)制代碼 代碼如下:
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】處理大批量數(shù)據(jù)的添加
復(fù)制代碼 代碼如下:
CREAT PROCEDURE [dbo].[Sp_DB_InsertBatch]
(
@LogXml NVARCHAR(MAX),
@LastTime DATETIME,
@CurrentTime DATETIME
)
AS
BEGIN
BEGIN TRAN
BEGIN TRY
--使用OPENXML()需要一個準(zhǔn)備動作:
--定義一個文檔指針@XMLHandler,類型為int(SP_XML_PREPAREDOCUMENT)。
--使用完后還需要把它釋放掉(SP_XML_REMOVEDOCUMENT)
DECLARE @XMLHandler INT;
--OPENXML()本身返回一個行集,并且需要3個參數(shù)和一組列映射定義。
--預(yù)先準(zhǔn)備好的文檔指針@XMLHandler,搜索路徑起點,映射標(biāo)志。
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】轉(zhuǎn)換類型
復(fù)制代碼 代碼如下:
select convert(int,'100.1')
select cast('100' as int)
截取并替換其他字符
select stuff('1347097110',5,6,'*******')
獲取ID為4附近的四條數(shù)據(jù)
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
聯(lián)表刪除數(shù)據(jù) deletefrom Souce from Souce inner join Student on Souce.sid = Student.id
相關(guān)文章
SQL?Server使用表值參數(shù)的實現(xiàn)示例
表值參數(shù)提供了一種將多行數(shù)據(jù)作為參數(shù)傳遞給存儲過程或函數(shù)的方法,本文主要介紹了SQL?Server使用表值參數(shù)的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-08-08
SQLServer2000 報1053錯誤(服務(wù)沒有及時響應(yīng)或控制請求)的解決方法
發(fā)生錯誤 1053-(服務(wù)沒有及時響應(yīng)或控制請求。),此時正在 MSSQLServer 服務(wù)上執(zhí)行該服務(wù)操作。我立即上網(wǎng)查找相關(guān)信息,看見有人說是更改windows用戶密碼后便出現(xiàn)此類問題,但說得都不是很明白,所以自己想總結(jié)一下2013-06-06
SQL語句中的ON DUPLICATE KEY UPDATE使用
本文主要介紹了SQL語句中的ON DUPLICATE KEY UPDATE使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
用SQL統(tǒng)計SQLServe表存儲空間大小的代碼
當(dāng)SQLServer數(shù)據(jù)庫越來越龐大,而其中的表有非常多的時候,想要知道到底是哪些表最耗存儲空間,到底該怎樣統(tǒng)計各個表的存儲大小呢2012-05-05
sqlserver isnull在數(shù)據(jù)庫查詢中的應(yīng)用
isnull在數(shù)據(jù)庫查詢中的應(yīng)用,特別是再語句連接的時候需要用到2011-11-11
SQL Server誤區(qū)30日談 第15天 CheckPoint只會將已提交的事務(wù)寫入磁盤
這個誤區(qū)是由于太多人對日志和恢復(fù)系統(tǒng)缺少全面的了解而存在已久。CheckPoint會將自上次CheckPoint以來所有在內(nèi)存中改變的頁寫回磁盤(譯者注:也就是臟頁),或是在上一個CheckPoint讀入內(nèi)存的臟頁寫入磁盤2013-01-01
使用phpMyAdmin修改MySQL數(shù)據(jù)庫root用戶密碼的方法
這篇文章主要介紹了使用phpMyAdmin修改MySQL數(shù)據(jù)庫root用戶密碼的方法,需要的朋友可以參考下2014-04-04
SQL Server中數(shù)學(xué)函數(shù)的用法
這篇文章介紹了SQL Server中數(shù)學(xué)函數(shù)的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05

