Sql中如何给变量赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql中如何给变量赋值相关的知识,希望对你有一定的参考价值。

我在sql中用where选取了一行数据,有年龄、性别等,同时规定了一些变量n1、n2、n3、该如何把年龄等数值赋值给变量呢?

Sql中如何给变量赋值使用set关键字。

例表格tt结构如图:

下面语句声明一个@ii_test的整型变量,然后给变量赋值,并在SQL查询中调用变量

参考技术A DECLARE @n1 int,@n2 varchar(10)
set @n1 =(select age from table where column=xxx)
set @n2=(select gender from table where column = xxx )
------------------
或者一起赋值
就是楼上那个
DECLARE @n1 int,@n2 varchar(10)
select @n1 =age,@n2=gender
from table where column = xxx
------------------
select @n1,@n2 就知道变量的值了本回答被提问者和网友采纳
参考技术B DECLARE @n1 int,@n2 varchar(10)
set @n1 =(select age from table where column=xxx)
set @n2=(select gender from table where column = xxx )
------------------
或者一起赋值
就是楼上那个
DECLARE @n1 int,@n2 varchar(10)
select @n1 =age,@n2=gender
from table where column = xxx
------------------
select @n1,@n2 就知道变量的值了
参考技术C

/*

Sql server 存储过程中怎么将变量赋值

*/

--SQL赋值语句

DECLARE @test1 INT

SELECT @test1 = 111

SET @test1 = 222

--SQL函数赋值,假定count()是自定义函数

DECLARE @test2 INT

SELECT @test2 = COUNT(*) FROM sys.sysobjects

--SQL存储过程赋值,直接传参处理(类似C语言中的指针吗)

IF OBJECT_ID('sp_test') IS NOT NULL DROP PROCEDURE sp_test

GO

CREATE PROCEDURE sp_test(@test INT OUTPUT)

AS

BEGIN

SELECT @test = 999

END

GO

DECLARE @test3 INT

EXEC sp_test @test3 OUTPUT

SELECT @test3

DROP PROCEDURE sp_test

GO

参考技术D select @n1=年龄,@n2=性别 from table where ......

存储过程给变量赋值

在存储过程中,怎么使用select给变量赋值啊?下面是我的存储过程,望高人指点,sqlserver2000的

CREATE PROCEDURE dbo.insertinto
@tablename1 varchar(200),
@tablename2 varchar(200),
@starttime varchar(200),
@endtime varchar(200),
@siteid varchar(200)

AS
declare @sql Varchar(4000),@sql1 varchar(4000),@stime varchar(200) ,
@etime varchar(200) ,@sql2 varchar(3000)--,@sql4 varchar(2000)
set @sql2 = N' delete from '+@tablename1+' where p004 between '''+@starttime+''' and ''' + @endtime +''''
exec(@sql2)
set @sql = N'insert into '+@tablename1+' select * from ' + @tablename2 +' where p004 between '''+@starttime+''' and ''' + @endtime +''''
exec(@sql)
set @sql1 = N'select '+ @stime +'= min(p004) ,'+ @etime+' = max(p004) from '+@tablename1
exec(@sql1)
update sitelist set starttime =@stime ,endtime = @etime where siteid = @siteid
GO
在我的存储过程上能给指出错误或者帮忙修改一下吗?改好追加20分,辛苦了!

参考技术A select @siteid=id from table
或者直接
select @siteid=23
set @siteid=23
都可以

以上是关于Sql中如何给变量赋值的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL代码将动态查询结果赋值给变量?

在SQL存储过程中,如何声明变量,赋值变量。最好有具体语句配上实例。3Q啦。谢谢各位大侠的帮忙

shell脚本中sql语句得到一个值,赋值给变量出错

VBA 连接数据库,查询中的变量如何赋值

SQL存储过程中怎样给变量赋值?

SQL SERVER 存储过程中SELECT 返回值如何赋值给变量