【转】 【SQL】行列转换
【SQL】行列转换
http://space.itpub.net/519536/viewspace-609167
一、列变行
1.创建测试表test,并初始化实验数据
sec@ora10g> create table test (name_id varchar2(10), name varchar2(10));
sec@ora10g> insert into test values ('01','Andy1');
sec@ora10g> insert into test values ('01','Andy2');
sec@ora10g> insert into test values ('01','Andy3');
sec@ora10g> insert into test values ('01','Andy4');
sec@ora10g> insert into test values ('02','Steven1');
sec@ora10g> insert into test values ('02','Steven2');
sec@ora10g> insert into test values ('02','Steven3');
sec@ora10g> insert into test values ('02','Steven4');
sec@ora10g> commit;
2.查看测试表数据
sec@ora10g> select * from test order by name_id;
NAME_ID NAME
---------- ----------------------------------------
01 Andy1
01 Andy4
01 Andy3
01 Andy2
02 Steven1
02 Steven4
02 Steven3
02 Steven2
8 rows selected.
3.我们按照name_id不同值将该表横向转换如下
SELECT t1.name_id,
SUBSTR (MAX (SYS_CONNECT_BY_PATH (t1.NAME, ';')), 2) NAME
from (SELECT a.name_id, a.NAME,
ROW_NUMBER () OVER (PARTITION BY a.name_id ORDER BY a.NAME) rn
from TEST a) t1
START WITH t1.rn = 1
CONNECT BY t1.name_id = PRIOR t1.name_id AND t1.rn - 1 = PRIOR t1.rn
GROUP BY t1.name_id;
NAME_ID &nbs
相关文档:
DECLARE @HDOC INT --文档句柄
DECLARE @XMLSTRING VARCHAR(200) --XML字符串
SET @xmlString ='<?xml version="1.0"?>
<ROOT>
<USER ID="1" Name="SBQCEL"/>
<USER ID="2" Name="PEACELI"/>
<USER ID="3" Name="SHEEPCHANG"/>
</ROOT>'
--使用系统存储 ......
使用触发器来实现
create table test(
id varchar(20),
sname varchar(20)
)
create TRIGGER [test_insert] ON [dbo].[test]
INSTEAD OF INSERT
AS
declare @str varchar(20)
declare @i integer
set @str = 'BV'+left(convert(char,getdate(),112),6)
select @i=isnull(max(cast(right(rtrim(id),len(id)-8 ......
优化的ms sql server分页sql语句
发布时间: 2009-8-15 00:00 | 发布作者: hjh | | 查看: 3次
特点:一次查询,数据库Databnse只返回一页的数据。而否则取出所有的数据。
说明:
pagesize: 每页呈现记录数
cureentpage:当前页数
select * from ( select TOP pagesize * from ( S ......
随着Visual Studio 2010的发布,Microsoft SQL Server Compact 3.5也升级为Microsoft
SQL Server Compact SP2。
下载地址如下:
SQL
Server Compact 3.5 SP2 for Windows mobile devices (all platforms &
processors)
SQL
Server Compact 3.5 SP2 for Windows desktop (32-bit and 64-bit)
  ......
分布式查询
OPENROWSET
从Excel取数据
SELECT * from OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=d:\1.xls',[Sheet1$])
从Oracle取数据
SELECT * from OPENROWSET('MSDAORA.1','NetServiceName ......