SQL Server CASE 1 WHEN 1, WHERE 1=1 AND 1=1 -
I inherited the following queries from the previous application. I'm having a hard time understanding "selection" and "case" in the "Where" section.
SELECT J1.AC_CODE, J1.PERIOD, J1.JRNAL_NO, J1.DESCRIPTN, - J1.AMOUNT, J1.ANAL_T3, Case 1, when 1AJ, which is 1.ACCNT_CODE END, Deo with J1.JRNAL_LINE JSOs J1 where 1 = 1 and 1 = 1 and not ('A' like '% Z%' and J1.JRNAL_SRCE IN ('B / F', 'CLRDN') and J1.JRNAL_NO = 0) and case 1 When 1 'A' is either J.AC_CODE END = 'A' and J1.AC_CODE = '156320' and J1 Differences between 2014 and 2014012 and J1 NALTH3 = 'Analyam' order 1,2, 3,4,5,6,7,8
I'm not sure if I understand the following sections correctly:
First section:
issue 1 when 1 then J1.AC_CODE END
through A Gone: If column 1 is true, select literal A or else choose J1. AC_CODE
Second section:
where 1 = 1 and 1 = 1 and not ('A' like '% Z%' and J1.JRNAL_SRCE IN ('B / F', 'CLRDN') and J. JRNLLO = 0) and case 1 when the difference between 1A 'A' JACACOCEDEDED = 'A' and J1AAC_Code = '156320' and J1 P> Can you explain this query and write a better version for this whole query? I am running this query on SQL Server 2008 (R2)
I understand: If the column 1 is correct, then select literal A or else choose J1.AC_CODE.
No, this value is being compared to
1
with value1
and if this is true then the case is aA
and it is definitely always correct, so the case statement will always returnA
.Your section does nothing at all.
1 = 1 and 1 = 1
will always be true and the case will always be true and '% Z'
Will always be false and this is the wholeand not as 'A' like '% Z%' ....
As always the expression is true.A simple version of your query will look like this.
SELECT J1.AC_CODE, J1.PERIOD, J1.JRNAL_NO, J1.DESCRIPTN, - J1. AMOUNT, J1.ANAL_T3, 'A', J1.JRNAL_LINE to Dbo.JSource J1 WHERE J1.AC_CODE = '156320' and J1. 2014 between 2014001 and 2014012 and J1.ANAL_T3 = 'ANAL001' order 1,2,3,4,5,6,7,8
Comments
Post a Comment