Ⅰ 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)