SQL 存储过程问题,如何给一个变量定义一个条件范围

如题所述

不是很理解你的意思,我猜你是问可否让一个变量=符合条件的多个值,是这样吗?
除了表变量,普通变量只能是单值。你的需求可以将符合条件的所有值insert into @一个表变量,然后在别处使用,select * from a where col in (select * from @一个表变量)
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-03
如果是在存储过程中declare的临时变量,是不能定义一个范围的,只能是一个值

怎么使用存储过程
-- 变量的赋值,变量赋值时变量前必须加set SET @I = 30 -- 声明多个变量 DECLARE @s varchar(10),@a INT -- Sql 里if语句 IF 条件 BEGIN 执行语句 END ELSE BEGIN ...>> 问题二:SQL存储过程如何调用存储过程? 在存储过程里用exec 执行另一存储过程名及它需要的参数就可以了 如exec...

Sql中如何给变量赋值
Sql中如何给变量赋值使用set关键字。例表格tt结构如图:下面语句声明一个@ii_test的整型变量,然后给变量赋值,并在SQL查询中调用变量

存储过程出现 SQL statement ignored错误
是执行到哪句错了?还是编译就没过?

SQL取两个值计算然后定义其属于的范围,应该怎么写存储过程语句?
select @a;

oracle存储过程中如何对一个变量累加赋值 最好有个例子
以一个从1+2+3+……100为例。代码:declarei int:=1; --定义变量ij int:=0; --定义变量jbeginwhile i<=100 --循环退出条件loop --执行循环j:=j+i; --循环累加值i:=i+1; --依次为i赋值end loop; --停止循环Dbms_Output.Put_Line(j); --打印结果end;结果如下:...

SQL内置函数的疑问,error跟isnull都是内置函数,为什么一个要加@@...
首先楼主要明白常量和变量的区别 变量前面都有个@ 有两个@@的是全局变量 全局变量 在整个当前会话都起作用 只有一个@的 变量就做不到这点 系统内置这个变量@@error 是用来读取执行错误的操作 isnull是内置函数 判断一个值是否为空 和@@error是两码事的 一个是内置变量 一个是内置函数 希望解决...

sql server 存储过程传参问题. 一个参数如何可以输入多个参数值_百度知 ...
sql server 2005之后,可以使用xml数据类型传值,然后在存储过程中将xml解析成表,和temp_test表连接。sql server 2008之后,可以使用表变量,传给存储过程。

我在存储过程中定义了一个@sql nvarchar(max),并给其赋值,发现字段被截 ...
问题过来这么久,楼主的问题肯定是解决了。原因是varchar max 或者nvarchar max是变量的数据类型时,长度并没有max 也就是说 是这种情况 declare @sql varchar(max)可以这样解决 sql1='select * from a'sql2=',b where a.name=b.name'exec (@sql1+@sql2)(最好在!@sql1的末尾加上 空格...

SQL存储过程 @@rowcount使用
返回类型 integer 注释 任何不返回行的语句将这一变量设置为 0 ,如 IF 语句。示例 下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。UPDATE authors SET au_lname = 'Jones'WHERE au_id = '999-888-7777'IF @@ROWCOUNT = 0 print 'Warning: No rows were updated'...

SQL一个字段多个数值怎么用update语句在每个数值上都加1
1、定义表,把这个字段里面的值全放在这个表里面 table 2、定义一个变量a,a=该字段值的个数 3、用for循环,定义变量i=0,i就

相似回答