您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
-->
当前位置:首页 >> 编程问答 >> MSSQL >> SQL2000编号排列问题

SQL2000编号排列问题

来源:网络整理     时间:2018/1/22 2:13:46     关键词:

关于网友提出的“ SQL2000编号排列问题”问题疑问,本网通过在网上对“ SQL2000编号排列问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: SQL2000编号排列问题

解决方案1:

/*
SQL Server2000 不支持 row_number,只能多转几个弯了
*/
USE tempdb
GO
if not object_id(N'Tempdb..T') is null
    drop table T
Go
Create table T([ID] int)
SET NOCOUNT ON
Insert T
select 1 union all
select 2 union all
select 3 union all
select 4 union all
select 5 union all
select 6 union all
select 7 union all
select 8 UNION ALL
select 10
GO
DECLARE @cnt INT
SELECT @cnt=COUNT(0) FROM t
DECLARE @t1 TABLE(id INT)
DECLARE @t2 TABLE(id INT)
INSERT INTO @t1(id)
SELECT TOP (@cnt/2) id FROM T ORDER BY t.ID 
INSERT INTO @t2(id)
SELECT TOP (@cnt-@cnt/2) id FROM T 
WHERE t.id NOT IN (SELECT id FROM @t1)
ORDER BY t.ID 
SELECT t1.id,t2.id FROM 
(SELECT *,(select count(*) from @t1 b  where a.id >= b.id) AS rid FROM @t1 AS a) AS t1
FULL JOIN
(SELECT *,(select count(*) from @t2 b  where a.id >= b.id) AS rid FROM @t2 AS a) AS t2
ON t1.rid=t2.rid
/*
id          id
----------- -----------
1           5
2           6
3           7
4           8
NULL        10
*/

  • 怎么在SQL2000里面添加从别的地方备份过来的数据啊,附加数据库的时候它提示不是正确的MDF文件

解决方案2:


--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int)
Insert #T
select 1 union all
select 2 union all
select 3 union all
select 4 union all
select 5 union all
select 6 union all
select 7 union all
select 8
Go
--测试数据结束
--1、
;WITH ctea AS (
Select *,ROW_NUMBER()OVER(ORDER BY GETDATE()) AS num from #T 
),cteb AS (
Select *,ROW_NUMBER()OVER(ORDER BY GETDATE()) AS rn from ctea WHERE num<=((SELECT COUNT(1) FROM ctea)/2)
),ctec AS (
Select *,ROW_NUMBER()OVER(ORDER BY GETDATE()) AS rn from ctea WHERE num>((SELECT COUNT(1) FROM ctea)/2)
)
SELECT cteb.ID,ctec.ID FROM cteb FULL JOIN ctec ON cteb.rn = ctec.rn

 SQL2000编号排列问题
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int)
Insert #T
select 1 union all
select 2 union all
select 3 union all
select 4 union all
select 5 union all
select 6 union all
select 7 union all
select 8
Go
--测试数据结束
--2、
;WITH ctea AS (
Select *,ROW_NUMBER()OVER(ORDER BY GETDATE()) AS num from #T WHERE ID%2=1
),cteb AS (
Select *,ROW_NUMBER()OVER(ORDER BY GETDATE()) AS num from #T WHERE ID%2=0
)
SELECT ctea.ID,cteb.ID FROM ctea FULL JOIN cteb ON cteb.num = ctea.num

 SQL2000编号排列问题
  • 【转】SQL2000存储过程的基础


以上介绍了“ SQL2000编号排列问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4531894.html

相关图片

相关文章