我想在SQL Server中创建一个数组并使用数据库表中的行填充它是否可能?
答案 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。