SQL 特殊语句(学习笔记)

【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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐