Ⅰ sql語句行轉列 怎麼轉啊
--聲明變數
declare@sqlvarchar(1000),@num_dataint,@num_allvarchar(2000),@num_numint,@table_sqlvarchar(2000)
set@num_num=0
--判斷並創建表
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[records]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[records]
createtablerecords(
[id]int,
[name]varchar(50),
[sex]varchar(10),
[num]int
)
--插入數據
insertintorecordsvalues(1,'tom','男',2)
insertintorecordsvalues(1,'tom','男',3)
insertintorecordsvalues(1,'tom','男',4)
insertintorecordsvalues(1,'tom','男',5)
--全選表中數據
select*fromrecords
--全選num列數據
selectnumas'數據'fromrecords
--釋放游標
deallocateselect_num
--為『selectnumfromrecords』建立游標
declareselect_numscrollcursorforselectnumas'shuju'fromrecords
--打開游標
openselect_num
--獲得第一條數據
fetchnextfromselect_numinto@num_data
set@num_all=convert(varchar,@num_data)+','
set@num_num=@num_num+1;
--如果獲取成功,繼續獲得數據
while@@fetch_status=0
begin
fetchnextfromselect_numinto@num_data
set@num_num=@num_num+1;
set@num_all=@num_all+convert(varchar,@num_data)+','
end
--關閉游標
closeselect_num
print@num_num
--set@num_num=@num_num-1;
declare@iint
set@i=1
print@num_num
print@i
set@table_sql='createtablenumall(idint,namevarchar(50),sexvarchar(10)'
print@table_sql
while@num_num>=1
begin
set@table_sql=@table_sql+',num'+convert(varchar,@i)+'int'
set@num_num=@num_num-1;
set@i=@i+1
end
set@table_sql=@table_sql+')'
print@table_sql
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[numall]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[numall]
exec(@table_sql)
declare@insert_sqlvarchar(2000)
set@insert_sql='insertintonumallvalues(1,'+'''tom'','+'''男'''
print@insert_sql
openselect_num
--獲得第一條數據
fetchnextfromselect_numinto@num_data
set@insert_sql=@insert_sql+','+convert(varchar,@num_data)
--如果獲取成功,繼續獲得數據
while@@fetch_status=0
begin
fetchnextfromselect_numinto@num_data
set@insert_sql=@insert_sql+','+convert(varchar,@num_data)
end
set@insert_sql=@insert_sql+')'
print@insert_sql
exec(@insert_sql)
--insertintonumallvalues(1,'tom','男',2,3,4,5,5)
select*fromnumall
試試吧,數據雖然有點出入,但已經說明問題了!!!
Ⅱ SOLIDWORKS2015安裝時 可執行文件 這個問題怎麼解決
1、打開載入的虛擬光碟機文件,點擊setup安裝。
注意事項:
由於SolidWorks出色的技術和市場表現,不僅成為CAD行業的一顆耀眼的明星,也成為華爾街青睞的對象。
Ⅲ SQL Server 標識規范 問題
UserID改成標識規范 為 是 的時候,在你添加、刪除和修改用戶的時候都不能對Userid操作,而且它是自動添加的,不可以修改。這樣資料庫表你不設置主鍵也可以。
如果UserID改成標識規范 為 否 的時候,那麼在增加、修改的時候你就得操作。
我用的ASP連接SQL Server 之後,先是登陸進去,然後裡面有個功能是 管理登陸賬戶。
我admin 表裡面一共有 UserID, username,password, purview 四個欄目,其中UserID是主鍵, 當我把UserID改成標識規范 為 是 的時候, 登陸的時候總是顯示賬戶密碼錯誤,登陸不進去,改成否的時候到時可以登陸進去了,但是後面的添加賬戶,顯示UserID不能為空。
在你下邊的代碼中
set rs=server.CreateObject("Adodb.recordset")
sql="insert into Admin(username,password,purview) values ------在添加數據時,userid你沒有添加,這就說明userid是標識規范,否則就回出現錯誤。
Ⅳ SQL Server資料庫如何將多行查詢代碼執行結果導出到txt文件中
1、將上述SQL語句,保存到一個文本文件 s.sql 中
2、建立一個批處理文件runsql.bat,內容如下:
osql -S資料庫名 -Usql用戶名 -Psql用戶密碼 -i s.sql -o result.txt
(如果安裝的是 SQL2000,可將上面的osql,改為 isql)
3、運行runsql.bat後,檢查result.txt,這里就是SQL語句執行後的結果
Ⅳ PL/SQL語句在SQL SERVER中不能用,求解
sql游標是這樣的,自己去改改吧
declare @s varchar(2000),@sql varchar(2000)
declare c cursor for select name from sys.databases
open c
fetch next from c into @s
while @@fetch_status=0
begin
set @sql = 'backup database ' + @s +' to disk = ''d:\'+@@servername+@s +convert(varchar(8),getdate(),112)+'.bak'''
print @sql
if @s = 'master'
exec(@sql)
fetch next from c into @s
end
close c
deallocate c
Ⅵ 怎麼寫一個腳本檢查oracle資料庫表空間,如果利用率超過80%,就執行一條加表空間的SQL
您好
SELECT UPPER(F.TABLESPACE_NAME) "表空間名",
D.TOT_GROOTTE_MB "表空間大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空閑空間(M)",
F.MAX_BYTES "最大塊(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1;
Ⅶ 如何將存儲過程放入查詢語句中執行
存儲過程的結果無法直接與select 做union,一個辦法是建一張臨時表,或者使用表變數,通過insert into exec將存儲過程的內容暫存起來,最後做union,大概語句像這樣:
declare@tabletable(...);
insertinto@table
execzjsj'10901';
select*froma
union
select*from@table;
Ⅷ 如何可以列印(顯示)出存儲過程中的SQL字元串
你可以在他注釋--print @sql那裡加上一句
select @sql
在下面就可以看到sql語句了,不過你要設置欄位的長度
或者之間就print @sql
在消息欄里就可以看見語句了
Ⅸ 如何用SQL比較一組數字找出不存在的數字
這個簡單呀,把參與比較的數據也放入一張表中,隨便取名為:mytb
測試數據:
create table mytb
(
data int
)
insert into mytb
select 0 data
union all
select 1
union all
select 2
union all
select 3
創建存儲過程:
create proc my_search
as
select * from mytb where data not in(select data from solt)
Ⅹ sqli 是什麼
SQL注入(SQLi)攻擊
生活質量指數(Spitzer Quality Of Life Index)