在存储过程中返回真或假值

问题描述 投票:0回答:3

我正在尝试在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”值。

我不确定这是否可行,甚至我不在正确的页面上

sql-server sql-server-2008 stored-procedures vb6 ssms
3个回答
3
投票

您可以尝试使用此

IF EXISTS(SELECT * 
    FROM InvoiceTable
    WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
    ) 
  SELECT 'True'
ELSE
  SELECT 'False'

0
投票

我想在InvoiceTable中查找他们是否有任何发票,status = B并返回true或false值

IF (SELECT COUNT(*) 
    FROM InvoiceTable
    WHERE OrderStatus = 'B' and VendorNumber = @VendorNumber
    ) > 0
  SELECT 'True'
ELSE
  SELECT 'False'

0
投票
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']

© www.soinside.com 2019 - 2024. All rights reserved.