現sql2000伺服器上有一張表,格式如下:
檔案內容 檔案組
1 a2 a
3 a4 b
5 c6 d
7 e8 e
9 f要實現將表內容更新為:
檔案內容 檔案組
a1 a
2 a3 a
b4 b
c5 c
d6 d
e7 e
8 ef
9 f意思是將分組資訊直接加在檔案內容之中?如果不用游標,不知道如何實現這樣的更新?
--> 測試資料: #tb
ifobject_id('
tempdb.dbo.#tb')
isnot
null
drop
table
#tbgo
create
table
#tb (檔案內容
varchar(1
),檔案組
varchar(1
))insert
into
#tbselect'1
','a
'union
allselect'2
','a
'union
allselect'3
','a
'union
allselect'4
','b
'union
allselect'5
','c
'union
allselect'6
','d
'union
allselect'7
','e
'union
allselect'8
','e
'union
allselect'9
','f
'alter
table
#tb
addid
intupdate
#tb
setid
=b.px
from
(select
*,px
=dense_rank()
over
( order
by檔案組 )
from
#tb)b,#tb a
where
a.檔案內容
=b.檔案內容
select
檔案內容,檔案組,id
from
#tbunion
allselect
distinct
檔案組,
'',id
from
#tb
order
byid, 檔案組
檔案內容 檔案組 id
---- ---- -----------
a 11
a 12
a 13
a
1b 24
b
2c 35
c
3d 46
d
4e 57
e 58
e
5f 69
f 6(
15行受影響)
--> 測試資料: [tb]
ifobject_id('
[tb]')
isnot
null
drop
table[tb
]create
table[tb
](檔案內容
varchar(10
),檔案組
varchar(10
))insert
into[tb
]select1,
'a'union
allselect2,
'a'union
allselect3,
'a'union
allselect4,
'b'union
allselect5,
'c'union
allselect6,
'd'union
allselect7,
'e'union
allselect8,
'e'union
allselect9,
'f'selectrn=
identity
(int,1
,1),*
into
#tb
from
(select
*from
tbunion
allselect
distinct'0
'as檔案內容,檔案組
from
tb ) t
order
by檔案組,檔案內容
select
case
when
檔案內容='
0'then
檔案組
else
檔案內容
endas
檔案內容,
case
when
檔案內容='
0'then
''else
檔案組
endas
檔案組
from
#tb
/*檔案內容 檔案組
a
1 a
2 a
3 a
b
4 b
c
5 c
d
6 d
e
7 e
8 e
f
9 f
*/
sql 2000 修復問題
sql 2000啟動時會彈出 本地計算機上的mssqlserver服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的 檢視系統日誌發現如下錯誤 18052 錯誤 9003,嚴重度 20,狀態 1。1 將d sqldata mssql data 目錄名data改為data bak 備份 2 ...
sql2000臨時表分頁
if exists select from dbo.sysobjects where id object id n temp and objectproperty id,n isusertable 1 drop table temp create table temp pager2011 id in...
sql2000安裝問題整理
1.版本問題 windows xp,windows2000 professional 安裝sql2000只能安裝個人版 不能安裝企業版 2.掛起的檔案操作 regedit hkey local machine system currentcontrolset control session mana...