on 절은 dbms나 버전에 따라 사용 못할수도 있나요? 0 8 738

by 란주 [SQL Query] [2020.08.11 18:31:48]


mssql 인데요 조인할때

on으로 조건을 하면 "on 근처의 구문이 잘못되었습니다" 라고 나오구요

where로 하면 정상적으로 결과가 나옵니다.

왜 그럴까요??? 

by pajama [2020.08.11 19:19:52]

mssql도 on절로 조인가능합니다.

아래처럼 조인절이 괄호로 묶여 있으면 오류가 나는 경우가 있네요.. 다른 문법 오류일수도 있고요.

 

SELECT
    A.A
FROM
    TAB1 A
INNER JOIN (TAB2 B ON    A.A = B.A    AND A.A = 1)


by 란주 [2020.08.12 09:26:29]

from 절 다음 테이블명을 콤마로만 해서 그런거 같아요

inner join 키워드를 넣으니까 on절이 되네요 

감사합니다


by 우리집아찌 [2020.08.12 09:30:38]

ANSI SQL이라 대부분 DBMS는 사용됩니다.

SQL을 한번 올려봐주세요.


by 란주 [2020.08.12 09:52:21]

쿼리는 아래와 같습니다 ㅎㅎ

select top 10 *
from tbla a, tblb b

where a.id = b.id


by 우리집아찌 [2020.08.12 10:54:06]
-- INNER JOIN , OUTER JOIN 을 쓸때만 ON절을 쓸수있습니다.

WITH T1 AS (
SELECT '1'  A UNION ALL
SELECT '2'  A 
) , T2 AS (
SELECT '1'  A , 'A' B  UNION ALL
SELECT '1'  A , 'B' B  UNION ALL
SELECT '2'  A , 'A' B  UNION ALL
SELECT '2'  A , 'B' B  UNION ALL
SELECT '2'  A , 'C' B   
)

-- ANSI JOIN
SELECT * 
  FROM T1 
       INNER JOIN
	   T2
   ON T1.A = T2.2 

 


by 란주 [2020.08.12 11:26:13]

// 우리집아찌님 답변 감사합니다

microsoft sql server 2014 - 12.0.4 입니다

mssql 에서 with 구문이 안됩니다.

102오류 근처의 구문이 잘못되었습니다. 로 나오네요 

서버 관리자가 with 키워드를 막아놓을수도 있나요??


by pajama [2020.08.12 12:29:35]

음..with문은 mssql 2008 부터 된다고 하네요 아마 마지막에 T2.2 여기를 T2.A로 하시면 될겁니다. 오타이신듯 해요~


by 란주 [2020.08.12 12:46:12]
답변 감사합니다. 저의 문제 에요. with 괄호 마지막 세미콜론을 넣어서 ㅜㅜ 많이 배워 갑니다 감사합니다
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입