[英]SQL, search for true, false or both
我目前正在尝试编写可以返回TRUE,FALSE或NEITHER的SQL搜索代码。 虽然我目前拥有的代码可以使用,但是我不喜欢必须复制和粘贴大量代码这一事实,并且我想知道是否有一种方法可以减少此处的代码量。
DECLARE @FYear int = 2017
DECLARE @FQuarter char(2) = 'Q2'
DECLARE @FINANCIAL_GOAL_MET bit = NULL
IF(@FINANCIAL_GOAL_MET IS NULL)
SELECT FYear,
FQuarter,
IIF(FINANCIAL_GOAL_MET = 'TRUE', 1,0) AS Financial_Goal_Met
FROM Finances
WHERE (FYear = @FYear)
AND (FQuarter = @FQuarter)
ELSE
SELECT FYear,
FQuarter,
IIF(FINANCIAL_GOAL_MET = 'TRUE', 1,0) AS Financial_Goal_Met
FROM Finances
WHERE (FYear = @FYear)
AND (FQuarter = @FQuarter)
AND FINANCIAL_GOAL_MET = @FINANCIAL_GOAL_MET
您可以在一个查询中执行此操作:
DECLARE @FYear int = 2017;
DECLARE @FQuarter char(2) = 'Q2';
DECLARE @FINANCIAL_GOAL_MET bit = NULL;
SELECT FYear, FQuarter,
(CASE WHEN FINANCIAL_GOAL_MET = 'TRUE' THEN 1 ELSE 0
END) AS Financial_Goal_Met
FROM Finances f
WHERE (FYear = @FYear) AND (FQuarter = @FQuarter) AND
(@FINANCIAL_GOAL_MET IS NULL OR FINANCIAL_GOAL_MET = @FINANCIAL_GOAL_MET);
对于不熟悉SQL Server中bit
类型的用户,可以接受'TRUE'
进行比较,即使它是字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.