[英]Comparison sign 'greater than' in CASE SQL Statement
我想在案例陳述中進行比較。 我試過了:
CASE DATEDIFF(MONTH, rs.MaturityDate, rs.PaymentDate) >1 AND <2 THEN 1 ELSE 0 END AS OneMonthDelay
,CASE DATEDIFF(MONTH, rs.MaturityDate, rs.PaymentDate) >2 AND <3 THEN 1 ELSE 0 END AS TwoMonthDelay
任何幫助,將不勝感激。
CASE WHEN DATEDIFF(MONTH, rs.MaturityDateID, rs.PaymentDateID) > 1
AND DATEDIFF(MONTH, rs.MaturityDateID, rs.PaymentDateID) < 2
THEN 1
ELSE 0
END AS OneMonthDelay
這順便說不通( >1 <2
)
他們的觀點是整數是整數。 因此,沒有什么比1更大,比2更小,但是存在等於或大於/小於/等於邏輯。 如果某項大於1但小於2,則它必須是類似於小數的東西(1.1、1.2、1.201 ...)
根據您的邏輯:
LOGIC: >1 <2
INPUT: 1
RESULT: 0
因為1不大於1且小於2。1等於1,但1.01大於1
LOGIC => 1 =< 2
INPUT: 1
RESULT: 1
或者,我認為您可以做到(可能有人需要對此進行糾正)
編輯:
使用juergen d的邏輯(最終編輯,這應該可以工作):
CASE WHEN DATEDIFF(MONTH, rs.MaturityDateID, rs.PaymentDateID)
BETWEEN 1 AND 2
THEN 1
ELSE 0
END AS OneMonthDelay
您的整個查詢應如下所示:
SELECT CASE
WHEN DATEDIFF(MONTH, rs.MaturityDateID, rs.PaymentDateID)
BETWEEN 1 AND 2
THEN 1
ELSE 0
END AS OneMonthDelay,
CASE WHEN
DATEDIFF(MONTH, rs.MaturityDateID, rs.PaymentDateID)
BETWEEN 2 AND 3
THEN 1
ELSE 0
END AS TwoMonthDelay
FROM FooTable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.