I have a SQL statement that I did not write and I am trying to get my head around it.
x
CASE
WHEN (1 = 1) THEN A.AMT
WHEN (A.ACC_NO = '1') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '2') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '3') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '4') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '5') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '6') THEN A.AMT - 100000000
ELSE A.FACE_AMT
END AS TRUE_AMT,
Can someone please explain what the (1=1) is doing please?
From researching this online my interpretation is that 1=1 means always true, so this would mean the case statement would always return the amt field?
However this doesn’t seem to make sense as this would mean none of the other conditions would ever be met?
Advertisement
Answer
It is placeholder for always true(typical usage is for debug/testing):
CASE
WHEN (1 = 1) THEN A.AMT
WHEN (A.ACC_NO = '1') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '2') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '3') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '4') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '5') THEN A.AMT - 100000000
WHEN (A.ACC_NO = '6') THEN A.AMT - 100000000
ELSE A.FACE_AMT
END AS TRUE_AMT,
-- entire case is the same as:
A.AMT AS TRUE_AMT