쿼리가 복잡하게 구성되있는 걸 좀 쉽게 보는 노하우? 같은게 있을까요
복잡한 쿼리 보니 어떻게 읽어야 할지 감이안오네요..ㅎㅎ
Comment 7
-
군고구마
2016.02.29 18:19
-
Terry
2016.02.29 18:23
들여쓰기가 제대로 되어있다는 가정하에서는 큰 문제없지 않나요?
1. 들여쓰기 전혀 안된..주우욱 1열로 나열된 쿼리.. ( 작성자 본인도 해석하는데 시간이 걸림 )
;with tblA(text) As( Select 'haha' Union All Select 'abcd' Union All Select '1234' ),tblB(id,text) As( Select 1,'123ha1ha123' Union All Select 2,'abcd431' Union All Select 3,'zsa1231234' ) Select a.* From tblB a Inner Join tblA b On CHARINDEX(b.text,a.text,0) > 0
2. 1번보다는 조금 양호하나 가독성이 엉망인 쿼리..
;with tblA(text) As( Select 'haha' Union All Select 'abcd' Union All Select '1234' )
,tblB(id,text) As( Select 1,'123ha1ha123' Union All Select 2,'abcd431' Union All Select 3,'zsa1231234' )
Select a.* From tblB a Inner Join tblA b On CHARINDEX(b.text,a.text,0) > 03. 들여쓰기 되어있는 쿼리
;with tblA(text) As
(
Select 'haha' Union All
Select 'abcd' Union All
Select '1234'
)
,tblB(id,text) As
(
Select 1,'123ha1ha123' Union All
Select 2,'abcd431' Union All
Select 3,'zsa1231234'
)
Select a.*
From tblB a
Inner Join tblA b On CHARINDEX(b.text,a.text,0) > 0
사람마다 쿼리 작성하는 스타일은 다르겠지만..(비단 쿼리뿐 아니라 프로그래밍 언어에도 동일하게 적용됨 )
들여쓰기만 제대로 되어있으면 크게 무리는 없을듯해요.
이야기가 삼천포로 빠지는 느낌이 있지만-_-;;;
비 Ansi 쿼리보다는 Ansi 표준 쿼리가 직관성이 더 좋구요.
저같은 경우는 무조건 컬럼1개 = 최소 1 행 으로 쿼리 작성합니다.
Join 의 경우 3 Line 으로 하구요.
---조인종류기술
-------------조인할테이블기술
--------------------On절 기술
-------------------On절 And 문 기술
Case 문의 경우도 조건별로 최소 1행으로 쿼리에 기술하구요.
(
Case When 조건
Then ~~
When ~~
Then ~~
Else ~~
End
)
들여쓰기가 제대로 안되어있는 쿼리라면
들여쓰기만 제대로 해도 눈에 확 들어올겁니다.
(덧글을 작성하면서도 원하시는 답변이 아닐거 같은 느낌이 계속 들어서..미안합니다ㅠ.ㅠ)
-
Blue2
2016.02.29 18:41
아니에요 감사합니다
어떤건지 느낌은 오네요!!
-
Blue2
2016.02.29 18:48
질문이 하나있는데 IIF문을 봤는데 이건 access함수가 맞나요?
그리고 검색해보니 IIF문은 (비교식,true일때,false일때) 이렇게 사용하는걸로 봤는데
만약 IIF문에 (비교식,true일때,IIF(반복)
이런식으로 사용되었다면 들여씌기를 어떻게 하는게 이상적인가요..?
-
Terry
2016.02.29 18:56
저도 어떤건지 몰라 검색해봤는데
https://msdn.microsoft.com/ko-kr/library/hh213574(v=sql.120).aspx
sql 2012 이상버전
access, excel 등에서 사용되는 함수인듯 보이네요.
들여쓰기는 제가 Guide 해드리기는 어렵구..질문자님이 보셨을때 이해가 되기 쉬운 형태로
1. IIF (비교식,true일때,false일때)
2. IIF(
비교식
,TRUE일때
,FALSE일때
)
2가지 중에 본인 눈에 잘 들어오는 걸로 하시면 될거 같아요^^;
저도 초보긴 하지만..전 2번 형태로 하는게 눈에 잘 들어와서 그런 형태로 쿼리나
프로그램 언어 작성하는 편이구요.
-
Blue2
2016.02.29 19:12
친절한답변 감사합니다 ㅎ!!
-
항해자™
2016.02.29 23:52
일단 select, from, join, on, where 구문이 확실히 잘 보여야 합니다,,
쿼리가 한줄로 나열되어 있거나,
select, from, join, on, where 구문이 한줄에 겹쳐져 있으면 보기가 힘들겠죠;;
테이블 별칭은 a, b, c, d 순으로 나열 하는게 좋을 수 있습니다,,,
모듈 단위로 쪼개서 보면 좋아요~