灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2677回复:0

[SQL Server]SQL特殊语句的笔记

楼主#
更多 发布于:2012-09-04 18:07

SQL特殊语句的笔记

【1】 以XML 返回

     (1)未定义属性的        select logisticsId,logisticsName  from LogisticsCompany  for xml auto,elements
    (2)定义属性节的
SELECT TOP 21 AS Tag,
   www.atcpu.com  
      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  www.atcpu.com  
  
    --使用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  www.atcpu.com  
  
【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

统计:select count(distinct(Tname)) from where Tname like '李%'






喜欢0 评分0
游客

返回顶部