美高梅网投网站-美高梅手机网投-美高梅官方网站
做最好的网站

您的位置:美高梅网投网址 > 数据库 > 美高梅网投网站下文 首先采用 over() row,下文将

美高梅网投网站下文 首先采用 over() row,下文将

发布时间:2019-09-29 11:55编辑:数据库浏览(54)

     

    转自:

    转自:http://www.maomao365.com/?p=6679


    摘要:

    下文将分享使用sql脚本输出交替变换的不同背景颜色的sql脚本的方法分享,如下所示:
    实验环境:sqlserver 2008 R2

    摘要:


    下文将分享使用sql脚本输出excel的方法
     
    美高梅官方网站,此脚本可以应用于 表或视图生成excel的方法,
    美高梅手机网投,若需使用sql脚本输出excel数据,我们可将sql脚本生成视图或临时表,

    例:
    下文 首先采用 over() row_number 函数生成的行编号,
    然后对每行进行颜色变化操作,生成不同的背景色,如下所示:

    然后再输出excel

    输出excel语法简介:
    exec
    master..xp_美高梅网投网站,cmdshell 'bcp [数据库名称].[架构名].[表名] out [excel存放位置全路径] -c -q -S"服务器Ip" -U "sql用户名" -P "sql密码"'

    ---例1:
    exec 
    master..xp_cmdshell 'bcp test.dbo.tableName out d:test.xls -c -q -S"." -U "sa" -P "erp"'
    ---将数据库test中tablName输出值d盘test.xls文件
    ---服务器地址.
    ---sql账户sa
    ---sql密码erp
    --------------------------------------------
    例2: 根据动态文件名输出excel的方法
    declare @name varchar(30) ---动态文件名
    set @name ='d:test123.xlsx'
    
    exec 
    ('master..xp_cmdshell ''bcp test.dbo.tableName out '+@name+' -c -q -S"." -U "sa" -P "erp"''') ---拼接操作语句,并采用exec执行
    

    注意事项:

    *1 使用脚本输出的excel ,无表头
    2 可动态文件名和动态sa账户密码生成相关信息
    3 如果输出sql脚本的数据至excel,我们需先将sql脚本生成的数据缓存至表中,然后输出表数据至excel

    xp_cmdshell相关权限需打开
    *

    create table test(keyId int,info varchar(30))
    go
    insert into test(keyId,info)values(10,'测试信息20180625-1')
    insert into test(keyId,info)values(20,'测试信息20180626-2')
    insert into test(keyId,info)values(21,'测试信息20180628-3')
    insert into test(keyId,info)values(81,'测试信息20180620-4')
    insert into test(keyId,info)values(92,'测试信息20180608-5')
    insert into test(keyId,info)values(101,'测试信息20180605-6')
    insert into test(keyId,info)values(102,'测试信息20180606-7')
    go
    
    
    declare @tmp varchar(max)
    set @tmp ='<table>'
    set @tmp =@tmp+'<tr><td>流水号<td>keyId<td>info</tr>'
    
    select 
    @tmp=@tmp+'<tr style=''background-color:'+ case when t.[编号] %2=0 then 'blue' else '' end+'''>'
    +'<td>'+ convert(varchar(100),t.[编号])
    +'<td>'+ convert(varchar(100),t.keyId)
    +'<td>'+t.info
    +'</tr>'
    from 
    (
    select row_number() over(order by keyId asc ) as [编号],
    keyId,info from test ) as t 
    
    
    set @tmp =@tmp+'</table>'
    select @tmp ---打印生成的html信息 
    
    go
    drop table test 
    

     

    本文由美高梅网投网址发布于数据库,转载请注明出处:美高梅网投网站下文 首先采用 over() row,下文将

    关键词:

上一篇:没有了

下一篇:没有了