【发布时间】:2015-04-10 16:51:19
【问题描述】:
当我使用 CTE 在 C# 应用程序中使用它时,我正在编写一个存储过程,但由于某些原因,该存储过程没有返回任何数据
这是我的存储过程
ALTER procedure [dbo].[sp_GetBrokerData]
@broker Varchar
as
Begin
With CTE AS
(
select
Product, Term,
CASE
WHEN BidBroker = @broker THEN BidBroker
ELSE null
END AS BidBroker,
CASE
WHEN BidBroker = @broker THEN BidVolume
ELSE null
END AS BidVolume,
CASE
WHEN BidBroker = @broker THEN BidCP
ELSE null
END AS BidCP,
CASE
WHEN BidBroker = @broker THEN Bid
ELSE null
END AS Bid,
CASE WHEN OfferBroker = @broker THEN Offer ELSE null end as Offer,
CASE WHEN OfferBroker = @broker THEN OfferCP ELSE null end as OfferCP,
CASE WHEN OfferBroker = @broker THEN OfferVolume ELSE null end as OfferVolume,
CASE WHEN OfferBroker = @broker THEN OfferBroker ELSE null end as OfferBroker
from
canadiancrudes
)
Select *
From CTE
Where not (Bid is null and Offer is null)
End
我可以知道上述过程中的问题吗?
【问题讨论】:
-
在 SSMS 中运行时是否返回数据? candiancrudes 表是什么样的?
-
irt 会在没有程序的情况下返回一些东西吗?
-
@GiorgiNakeuri 它确实返回所需的数据而无需过程
-
如果我不得不猜测(这是一个有根据的猜测)是你定义你的参数没有长度,这意味着它是一个
VARCHAR(1),你的数据中没有那个长度的数据表
标签: c# stored-procedures sql-server-2012