sql变量select
A. sql中select返回变量的问题
使用游标遍历,一个一个去取。
下面的例子希望可以帮到你。
declare cursor1 cursor for --定义游标cursor1
select * from table1 --使用游标的对象(跟据需要填入select文)
open cursor1 --打开游标
fetch next from cursor1 into @id--将游标向下移1行,获取的数据放入之前定义的变量@id中
while @@fetch_status=0 --判断是否成功获取数据
begin
print @count --进行相应处理(跟据需要填入SQL文)
fetch next from cursor1 into @id--将游标向下移1行
end
close cursor1 --关闭游标
deallocate cursor1
B. Sql语句中的select语句。在ms sql server中。对变量赋值
问题1:这句式是常用的,如果给变量赋的值不是单一而是结果集的话
只会赋值最后一条数据,不会报错;通常如果要一条一条的赋值来执行其他操作的话
是要用到游标的
问题2:你想的语句是错误的,因为select
@name
=name
from
table
1
where
id
=‘123’
只是赋值语句,而不是真正意义上的查询语句,所以语句将不会执行
C. 在SQL 查询语句里,select from 变量
比如要查询A表的数据:
declare @table varchar(20) ,@sql varchar(20)
set @table='A'
set @sql='select * from '+@table
exec (@sql)
你上面的语句明显是错误的,select * from @m其中的@m是个变量应该是个表名
D. sql server select 多个变量
这个有俩种写法:
1: insert into A1(id) select id from T where id=1
insert into A2(id) select id from T where id=2
....
2:使用 exec拼接,这种方法需要看具体实现情况了 ,比如做个循环
exec('insert into '+@a+'(id) select id from T where id='+@id)
E. Sql中的set和select赋值方式的区别
最近的项目写的SQL比较多,经常会用到对变量赋值,而我使用SET和SELECT都会达到效果。
那就有些迷惑,这两者有什么区别呢?什么时候哪该哪个呢?
经过网上的查询,及个人练习,总结两者有以下几点主要区别:
假定有设定变量:
复制代码 代码如下:
DECLARE @VAR1 VARCHAR(1)
DECLARE @VAR2 VARCHAR(2)
1、SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值,如下:
复制代码 代码如下:
SELECT @VAR1='Y',@VAR2='N'
-- 而SET要达到同样的效果,需要:
SET @VAR1='Y'
SET @VAR2='N'
/*
说到这个,SQL内置的变量:@@ERROR 和 @@ROWCOUNT必须要在一句SQL语句中捕获。如果用set分两句来获取它们,将获取不完整,这时就应该用select来获取值。
*/
2、表达式返回多个值时,用SET将会出错,而SELECT将取最后一个值,如下:
复制代码 代码如下:
----以下假定Permission表有多个IsRight记录
SELECT @VAR1 = IsRight FROM Permission --将取最后一个值
SET @VAR1 = IsRight FROM Permission --将报错
3、表达式无返回值时,用SET将置变量值为NULL,用SELECT交保持变量值,如下:
复制代码 代码如下:
----以下假定Permission记录为空
SET @VAR1 = '初始值'
SELECT @VAR1 = IsRight FROM Permission --此时@VAR1为'初始值'
SET @VAR1 = (SELECT IsRight FROM Permission) --此时@VAR1为NULL
4、使用标量子查询时,如果无返回值,SET和SELECT一样,都将置为NULL,如下:
复制代码 代码如下:
----以下假定Permission记录为空
SET @VAR1 = '初始值'
SELECT @VAR1 =(SELECT IsRight FROM Permission ) --此时@VAR1为NULL
SET @VAR1 = ( SELECT IsRight FROM Permission) --此时@VAR1为NULL
F. sql中,select定义怎样使用变量
你这是语法错误了,from 后面是表,你声明的变量是varcher,要声明表变量;
怎样实现select语句中[数据库名].[结构类型].[表名]为局部变量?
你可以这样:select @hisDB = temp.[DSN] FROM (select @masterDB as [DSN])temp
G. SQL里面怎么用 select 变量 from 表名 的方式动态指定字段名
SQL里面怎么用 select 变量 from 表名 的方式动态指定字段名
//定义查询出来的字段名@f_name
declare @f_name varchar(50)
//给@f_name赋值
select @f_name=f_name from table_name
//执行拼接的sql语句
exec (N'select '+@f_name + N' from table_name')
//这3步必须一起执行
//在2008r2版本测试通过
H. sql server 2000 如何把select的值赋给一个变量
直接使用 = 号可以赋值,如图把a列的值赋给变量 @name
需要注意:
1、sql中 使用 declare 声明 变量,变量要以@开头。
2、如果是直接赋值使用set ,如: set @name = 'name'
3、select 子句中赋值,需要注意结果集,如第一个例子中,
select @name = a from a (去除了 id=2的筛选),那么结果集为多条记录
那么@name 接收的值是结果集最后一条记录中 a列的值。
I. SQL中的SELECT命令的功能是
从表或视图中检索符合条件的数据。
select后面跟的是数据项列表
J. sql 存储过程 select怎么返回变量值
存储过程可以定义两个变量:1、传入变量(学号);2、返回变量(0和1);3、备用变量(判断优秀的条件)程序收到返回值时判断后输出提示。
如果不知道多少分为优秀,则可以多加一个传入变量,将判断是否优秀的分值也从变量代入。