SELECT
L.LOC_SEQ_NUM as LocationSequenceNumber,
L.POLICY_NUM as PolicyNumber,
L.BUS_SEQ_NUM as BusinessSequenceNumber,
L.PARENT_LOC_SEQ_NUM as ParentLocationSequenceNumber,
L.LOC_EFF_DATE as EffectiveDate,
L.LOC_EXP_DATE as ExpirationDate,
L.LOCATION_CODE as LocationCode,
L.LOCATION_NAME as Name,
L.LOC_ADDR1 as AddressLine1,
L.LOC_ADDR2 as AddressLine2,
L.LOC_CITY as City,
L.LOC_COUNTRY as CountryCode,
L.LOC_COUNTY as CountyCode,
L.LOC_PHONE as PhoneNumber,
L.LOC_PHONE_EXT as PhoneNumberExtension,
L.LOC_FAX as Fax,
L.LOC_STATE as StateCode,
L.LOC_ZIP as ZipCode,
L.LOC_ZIP4 as ZipCodeExtension,
L.MAIL_ADDR_FLAG as MailFlag,
L.CREATE_USER as CreateUser,
L.CREATE_DATE as CreateDate,
L.UPDATE_USER as UpdateUser,
L.UPDATE_DATE as UpdateDate,
L.EMAIL_ADDR as Email,
L.EMPLOYEE_COUNT as EmployeeCount,
L.LOC_ADDR3 as AddressLine3,
L.PRIMARY_LOCATION_FLAG as PrimaryLocationFlag,
L.CELL_PHONE as CellPhoneNumber
FROM
LOCATION L
WHERE
1 = 1
AND L.POLICY_NUM = :PolicyNumber
AND L.LOCATION_CODE IN ('POL','AUD','BUS')
AND L.LOC_EXP_DATE IS NULL
ORDER BY
CASE
WHEN L.LOCATION_CODE = 'POL' THEN '1'
WHEN L.LOCATION_CODE = 'AUD' THEN '2'
WHEN L.LOCATION_CODE = 'BUS' AND L.PRIMARY_LOCATION_FLAG = 'Y' THEN '3'
ELSE '4'
END
-- Alternate runtime branch
SELECT
L.LOC_SEQ_NUM as LocationSequenceNumber,
L.POLICY_NUM as PolicyNumber,
L.BUS_SEQ_NUM as BusinessSequenceNumber,
L.PARENT_LOC_SEQ_NUM as ParentLocationSequenceNumber,
L.LOC_EFF_DATE as EffectiveDate,
L.LOC_EXP_DATE as ExpirationDate,
L.LOCATION_CODE as LocationCode,
L.LOCATION_NAME as Name,
L.LOC_ADDR1 as AddressLine1,
L.LOC_ADDR2 as AddressLine2,
L.LOC_CITY as City,
L.LOC_COUNTRY as CountryCode,
L.LOC_COUNTY as CountyCode,
L.LOC_PHONE as PhoneNumber,
L.LOC_PHONE_EXT as PhoneNumberExtension,
L.LOC_FAX as Fax,
L.LOC_STATE as StateCode,
L.LOC_ZIP as ZipCode,
L.LOC_ZIP4 as ZipCodeExtension,
L.MAIL_ADDR_FLAG as MailFlag,
L.CREATE_USER as CreateUser,
L.CREATE_DATE as CreateDate,
L.UPDATE_USER as UpdateUser,
L.UPDATE_DATE as UpdateDate,
L.EMAIL_ADDR as Email,
L.EMPLOYEE_COUNT as EmployeeCount,
L.LOC_ADDR3 as AddressLine3,
L.PRIMARY_LOCATION_FLAG as PrimaryLocationFlag,
L.CELL_PHONE as CellPhoneNumber
FROM
LOCATION L
WHERE
1 = 1
AND L.POLICY_NUM = :PolicyNumber
AND L.LOCATION_CODE IN ('POL','AUD','BUS','PAY')
AND L.LOC_EXP_DATE IS NULL
ORDER BY
CASE
WHEN L.LOCATION_CODE = 'AUD' THEN '1'
WHEN L.LOCATION_CODE = 'PAY' THEN '2'
WHEN L.LOCATION_CODE = 'POL' THEN '3'
WHEN L.LOCATION_CODE = 'BUS' AND L.PRIMARY_LOCATION_FLAG = 'Y' THEN '4'
ELSE '5'
END