我正在尝试在SQL Server Management Studio中创建一个存储过程,我可以在该表中找到属于具有特定状态的特定供应商的表中的任何发票。例如,我的VB应用程序中有供应商123456,并且我想在InvoiceTable中查找状态是否为B的发票,并返回true或false值。到目前为止,我一直在尝试:
ALTER PROCEDURE [dbo].[CheckStatus]
@VendorNumber char
AS
BEGIN
Select distinct
CASE WHEN OrderStatus = 'B' and VendorNumber = @VendorNumber then 'true' else 'False' END as Status
from InvoiceTable
END
现在,无论orderstatus = B还是vendornumber = @vendornumber,它总是返回奇异的“ False”值。
我不确定这是否可行,甚至我不在正确的页面上
您可以尝试使用此
IF EXISTS(SELECT *
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
)
SELECT 'True'
ELSE
SELECT 'False'
我想在InvoiceTable中查找他们是否有任何发票,status = B并返回true或false值
IF (SELECT COUNT(*)
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
) > 0
SELECT 'True'
ELSE
SELECT 'False'
DECLARE @Result varchar(10)
IF EXISTS(SELECT *
FROM InvoiceTable
WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
)
BEGIN
SET @Result = 'True'
END
ELSE BEGIN
SET @Result = 'False'
END
RETURN @Result
注意-您可以使用bit代替返回'True'或'False']