2

我正在尝试从子查询中选择多个变量以便以后使用。这是我的代码:

DECLARE @MarketplaceName VARCHAR(50),
    @ProductFieldID INT,
    @FromValue VARCHAR(255) = (
        SELECT mcvm.MarketplaceName,
            mcvm.ProductFieldID,
            mcvm.FromValue
        FROM [Meta].[MarketplaceCategoryValueMapping] AS mcvm
        WHERE mcvm.MarketplaceCategoryValueMappingID = @MapID
        )

我收到以下错误消息:

当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。

我正在尝试@MarketplaceNamemcvm.MarketplaceName等映射。

我想要的是不必SELECT为每个变量编写多个语句。

4

2 回答 2

8

你想这样做吗?

DECLARE @MarketplaceName VARCHAR(50),
        @ProductFieldID INT,
        @FromValue VARCHAR(255)
SELECT  @MarketplaceName    = mcvm.MarketplaceName,
        @ProductFieldID     = mcvm.ProductFieldID,
        @FromValue          = mcvm.FromValue
FROM [Meta].[MarketplaceCategoryValueMapping] AS mcvm
WHERE mcvm.MarketplaceCategoryValueMappingID = @MapID
于 2013-01-09T20:22:17.117 回答
3

这就是你的做法。此外,这不是子查询,它只是一个查询。

DECLARE @MarketplaceName VARCHAR(50),
        @ProductFieldID INT,
        @FromValue VARCHAR(255)


SELECT @MarketplaceName = mcvm.MarketplaceName,
       @ProductFieldID = mcvm.ProductFieldID,
       @FromValue = mcvm.FromValue
FROM [Meta].[MarketplaceCategoryValueMapping] AS mcvm
WHERE mcvm.MarketplaceCategoryValueMappingID = @MapID
于 2013-01-09T20:22:52.613 回答