SELECT 1 FROM
select 문에서 1을 사용하여 테이블 개수만큼 1로된 행을 출력
테이블내 행의 개수가 N개라면 N개만큼 행이 반환됨
1은 true를 의미함
WHERE 조건문에서 해당 조건을 만족하면 1을 반환
예)
SELECT *
FROM TABLE1 T1
WHERE EXISTS (
SELECT 1
FROM TABLE2 T2
WHERE T1.ID = T2.ID
);
| cs |
예)
SELECT
T1.AMT_ODR
, T2.AMT_ODR
, (DSTB_AMT_SUM / NMPR_CNT) AS ID_RATE
FROM
(
SELECT 1 AS AMT_ODR, DSTB_AMT_SUM
FROM MA_RT_PCST
WHERE FACC_YYMM = '201809'
AND MNGM_ACNT_CD = 'T60000000'
AND MNGM_DEPT_CD = '144260' /* 영업이익 */
UNION ALL
SELECT 2 AS AMT_ODR, DSTB_AMT_SUM
FROM MA_RT_PCST
WHERE FACC_YYMM = '201809'
AND MNGM_ACNT_CD = 'T90000000'
AND MNGM_DEPT_CD = '144260' /* 세전이익 */
UNION ALL
SELECT 3 AS AMT_ODR, SUM(OORD_AMT)
FROM MA_RT_MM_CLSG_PRFT
WHERE FACC_YYMM = '201809'
AND MNGM_DEPT_CD = '144260' /* 수주실적 */
UNION ALL
SELECT 4 AS AMT_ODR, SUM(OORD_NEW_DPST + OORD_CAFW_DPST)
FROM MA_RT_MM_CLSG_PRFT
WHERE FACC_YYMM = '201809'
AND MNGM_DEPT_CD = '144260' /* 입금실적 */
) T1
CROSS JOIN
(
SELECT 1 AS AMT_ODR, SUM(SLRY_PAY_AMT) AS NMPR_CNT
FROM MA_MI_DEPT_SLRY
WHERE FACC_YYMM = '201809'
AND CMPN_CD = '1000'
AND DSTB_STDR = 'C0023'
AND DEPT_CD = '111136' /* 인건비 */
UNION ALL
SELECT 2 AS AMT_ODR, NMPR_CNT
FROM MA_MI_DEPT_NMPR
WHERE FACC_YYMM = '201809'
AND CMPN_CD = '1000'
AND DSTB_STDR ='C0020'
AND DEPT_CD = '144260' /* 인원수 */
) T2
ORDER BY T2.AMT_ODR, T1.AMT_ODR
| cs |
https://stackoverflow.com/questions/7171041/what-does-it-mean-by-select-1-from-table