如何为sql server中同一列的变量分配多个值

时间:2014-03-16 04:32:41

标签: sql-server

如何在变量中分配同一列的多个值,以便我可以在编程中使用独立值。 SQL服务器中是否有任何数组概念?

SELECT @x= Code FROM Security WHERE Department=@dpt;

当代码具有单个值时,这可以正常工作,但是当代码具有多个值时,它会提供错误。

2 个答案:

答案 0 :(得分:0)

SQL Server中没有数组。

虽然有table variables与临时表的用法相似。

如MSDN所述:

  

table是一种特殊数据类型,可用于存储结果集以便以后处理。 table主要用于临时存储作为表值函数的结果集返回的一组行。函数和变量可以声明为table类型。表变量可用于函数,存储过程和批处理。

你可以这样使用它:

DECLARE @x TABLE (Code int)

INSERT INTO @x
SELECT Code FROM Security WHERE Department=@dpt

答案 1 :(得分:0)

我可以根据你打算做的两种方式思考...

  1. 声明@mytable表(Code Int) 插入@mytable 从安全部门选择代码,其中部门= @ dpt。

  2. 声明@x nvarchar(max) 设置@x =“”; 选择@x = cast(代码为Nvarchar(max))+“,”+ @x来自Security WHERE Department = @ dpt;

  3. 现在您将数据作为逗号分隔字符串,然后您可以将其进一步拆分为上面的#1表,或者将其作为字符串发送出去,程序可以使用它。