Sql server SQL where子句中的布尔条件
我想编写一个sql查询来获取数据,如下所示:Sql server SQL where子句中的布尔条件,sql-server,booleanquery,Sql Server,Booleanquery,我想编写一个sql查询来获取数据,如下所示: 1. when param = 'all' it should list data across the table 2. when param = 'yes' it should list data where invoicenumber is not empty. 3. when param = 'no' it should list data where invoicenumber is empty. 我试着在下面询问是和否 declare
1. when param = 'all' it should list data across the table
2. when param = 'yes' it should list data where invoicenumber is not empty.
3. when param = 'no' it should list data where invoicenumber is empty.
我试着在下面询问是和否
declare @invoiced as nvarchar(10) = 'no'
select * from OrderSummary
where
((@invoiced = 'yes') or (InvoiceNumber = ''))
and
((@invoiced = 'no') or (InvoiceNumber <> ''))
declare@发票为nvarchar(10)=“否”
从OrderSummary中选择*
哪里
((@invoinced='yes')或(InvoiceNumber='')
和
((@invoinced='no')或(InvoiceNumber'))
现在我还想合并所有条件,有谁能建议我如何实现将@invocated声明为nvarchar(10)=“否”
declare @invoiced as nvarchar(10) = 'no'
select * from OrderSummary
where
@invoiced = 'all'
OR
(@invoiced = 'yes' AND InvoiceNumber <> '')
OR
(@invoiced = 'no' AND InvoiceNumber = '')
从OrderSummary中选择*
哪里
@发票='全部'
或
(@invoinced='yes'和InvoiceNumber')
或
(@invoinced='no'和InvoiceNumber='')
声明@invocated为nvarchar(10)=“否”
从OrderSummary中选择*
哪里
@发票='全部'
或
(@invoinced='yes'和InvoiceNumber')
或
(@invoinced='no'和InvoiceNumber='')
试试这个
declare @invoiced as nvarchar(10) = 'no'
select
*
from OrderSummary
where
(
@invoiced = 'all'
OR
(
@invoiced = 'yes'
AND
InvoiceNumber <> ''
)
OR
(
@invoiced = 'no'
AND
InvoiceNumber = ''
)
)
declare@发票为nvarchar(10)=“否”
挑选
*
来自订单摘要
哪里
(
@发票='全部'
或
(
@发票='是'
及
发票号码“”
)
或
(
@发票='否'
及
发票号码=“”
)
)
试试这个
declare @invoiced as nvarchar(10) = 'no'
select
*
from OrderSummary
where
(
@invoiced = 'all'
OR
(
@invoiced = 'yes'
AND
InvoiceNumber <> ''
)
OR
(
@invoiced = 'no'
AND
InvoiceNumber = ''
)
)
declare@发票为nvarchar(10)=“否”
挑选
*
来自订单摘要
哪里
(
@发票='全部'
或
(
@发票='是'
及
发票号码“”
)
或
(
@发票='否'
及
发票号码=“”
)
)
声明@invocated为nvarchar(10)=“否”
从OrderSummary中选择*
哪里
((@invoinced='yes')和(InvoiceNumber'))
或
((@invoiced='no')和((InvoiceNumber='')或(InvoiceNumber=null)))
或(@invoited='all')
请使用上述查询更新此查询。将@invoited声明为nvarchar(10)=“否”
从OrderSummary中选择*
哪里
((@invoinced='yes')和(InvoiceNumber'))
或
((@invoiced='no')和((InvoiceNumber='')或(InvoiceNumber=null)))
或(@invoited='all')
请使用上述查询更新此查询。它应该满足您的要求
declare @invoiced as nvarchar(10) = 'no'
select * from OrderSummary
where
((@invoiced in ('all','no')) OR (@invoiced = 'yes' AND InvoiceNumber <> ''))
and
((@invoiced in ('all','yes')) OR (@invoiced = 'no' AND InvoiceNumber = ''))
and
(@invoiced in ('no','yes'))
declare@发票为nvarchar(10)=“否”
从OrderSummary中选择*
哪里
(@invoited in('all','no')或(@invoited='yes'和InvoiceNumber'))
和
(@invoited in('all','yes')或(@invoited='no'和InvoiceNumber='')
和
(@发票金额('否','是'))
它应该满足您的要求
declare @invoiced as nvarchar(10) = 'no'
select * from OrderSummary
where
((@invoiced in ('all','no')) OR (@invoiced = 'yes' AND InvoiceNumber <> ''))
and
((@invoiced in ('all','yes')) OR (@invoiced = 'no' AND InvoiceNumber = ''))
and
(@invoiced in ('no','yes'))
declare@发票为nvarchar(10)=“否”
从OrderSummary中选择*
哪里
(@invoited in('all','no')或(@invoited='yes'和InvoiceNumber'))
和
(@invoited in('all','yes')或(@invoited='no'和InvoiceNumber='')
和
(@发票金额('否','是'))