如何从数据库中的行填充SQL数组?

时间:2014-10-21 11:07:44

标签: sql sql-server arrays

我想在SQL Server中创建一个数组并使用数据库表中的行填充它是否可能?

4 个答案:

答案 0 :(得分:0)

是的,您可以这样做:

DECLARE @List TABLE(ID VARCHAR(100));
INSERT INTO @List
VALUES('a'),('10'),('20'),('c'),('30'),('d');
SELECT ID FROM @List;
GO

答案 1 :(得分:0)

SQL Server不像其他数据库那样支持数组,例如Oracle。

但您可以通过创建单独的表来实现相同的目标,这些表将作为键值对使用,并使用您正在使用的主表引用它们。

Erland在他的博客/网站上有关于此主题的好文章,请点击此处:http://www.sommarskog.se/arrays-in-sql.html

答案 2 :(得分:0)

我曾经如下所示实施过一次:

declare @Array table(index int identity(1,1), value varchar(30));

insert into @Array (value)
select xyz from yourTable;

insert into @Array (value) values
('helloworld')

答案 3 :(得分:0)

正如我在评论中提到的,您可以创建Table Variable ...

DECLARE @TableName TABLE (column datatype)
INSERT INTO @TableName....

然后,您可以将该表用作JOIN,例如..

SELECT columns from TableA A INNER JOIN @TableName B ON A.Column = B.Column

您还可以使用CTE ...

;WITH cteArray AS (SELECT Columns FROM SourceTable....)
SELECT columns from TableA A INNER JOIN cteArray B ON A.Column = B.Column

但这显然是基于问题中缺乏信息的假设。此外,如果查询是直截了当的,则可能都不需要这些查询,并且可能需要简单的Subquery