簡體   English   中英

CASE SQL語句中的比較符號“大於”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM