MS-SQL을 97버전부터 쭉... 15년 이상 써왔습니다. 그런데 SQL 2012에 들어서 이상한 점이 발견되서 문의드립니다.

일련의 순서를 저장하기 위해 #으로 정의하는 임시테이블을 사용합니다.

물론, 오라클을 따라서 Rank라는 함수가 있으나 문제는 이 함수가 2000에는 없어서..(거래처중 아직도 2000이 있답니다..)

여튼, rank와 같은 짓을 하기 위해 저는 임시테이블을 사용했습니다.

예를 들어 다음과 같은 데이터(A테이블)가 있습니다.

  DAT     SEQ
------------------
  104
  103
  101
  102
  105

일련번호에 데이터의 순서에 맞게 값을 넣고자 합니다. 잘 되면 다음과 같이 됩니다.

  DAT     SEQ
------------------
  104      4
  103      3
  101      1
  102      2
  105      5

그야말로 순서를 매기는 거죠. 그런데 위에서 말씀드렸다시피 거래처중 2000이 있다보니 rank를 쓰지 못합니다.(썼다가 대박난 적이 있..) 그래서 다음과 같이 작업합니다.
  
SELECT 데이터 INTO #T FROM A ORDER BY DAT

이렇게 되면 #T에는 다음과 같은 자료가 만들어져야 합니다.

  DAT    
---------  
  101      
  102      
  103      
  104      
  105

이제 여기에 뭐 몇가지 작업을 더해서 일련번호를 부여하고, 그다음에 원천 자료와 매칭해서 업데이트를 해왔습니다.

그런데.. 2012에 와서(그런데 모든 2012가 다그러는지는 미처 확인 못했습니다) 이 #T에 insert할때 이상하게 저장됩니다. 분명, ORDER BY를 주었음에도 데이터가 몇개씩 순서가 틀어지는 겁니다.

이건 그냥 임시테이블이 만들어져 있는 상태에서 SELECT * FROM #T를 해보면 알수 있습니다.
2012미만 버전과 2012버전이 서로 다른 결과 값을 보여주는거죠. 

그런데 문제는 2012에서 결과를 예전처럼 만드는 방법이 없다는 겁니다.(뭐.. 제가 모르는거겠지요..?)

뭔가 옵션이 있을거 같기도 한데요... 왜냐하면 다른 2012를 사용하는 다른 거래처는  별말이 없었거든요..

설이 길었습니다만.. 혹시 2012에서 이런 요상한 상황 보신적이 있으신가요???

물론, 일단은 해결해야해서 SQL의 버전을 체크해서 2012인 경우에는.. 해서 함수를 따로 만들어서 RANK로 돌렸습니다. 그래도 뭔가 찜찜해서요..

해결책이 있다면.. 알려주셨으면 합니다.


고맙습니다.

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 23765
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12435
8740 db server 2008 database를 local로 가져올때 [2] 수송대원 2015.05.28 2400
8739 반올림이 안되네요?? [1] 석준 2015.05.27 2342
8738 XEvents에서 파일 관리 [2] 더따뜻한 2015.05.27 2999
8737 SQL Server -> mongodb로 데이터 마이그레이션 [1] 메칸더 2015.05.27 5001
8736 쿼리 질문드립니다 [3] Sinlay 2015.05.26 2774
8735 Join VS 하위쿼리 [1] Sinlay 2015.05.26 2476
8734 많은양의 데이타 삭제시 질문 [3] hhhh 2015.05.24 2883
8733 프로시저 실행시 where 작은따옴표를 어떻게 처리 해야할지 고민입니다 도와주세요 [3] 이상준_300283 2015.05.24 4780
8732 MSSQL 책하나 추천 부탁드립니다. [1] Sinlay 2015.05.22 2651
8731 한컬럼에서 반복적인 중복 값제거하기 아시는분 [1] 곰요 2015.05.22 2581
8730 엑세스와 SQL서버 연결 문제 [2] 살신성곰 2015.05.22 3342
8729 커서 쿼리 문의 입니다. [2] 카르페디엠 2015.05.21 2568
8728 홈페이지 서버 관련 문의 (DB 관련 문의) [1] 아우렐리오 2015.05.21 4832
8727 중복구간 삭제 쿼리 질문드립니다 [2] saysay218 2015.05.20 3963
8726 mssql lock 에 대해서 궁금한게 있어서요.. [4] 죄민수 2015.05.19 2739
8725 프로시저의 주석이 다 사라졌습니다. 흑흑 2015.05.19 2231
» MS-SQL 2012버전에서 임시테이블 관련 문의입니다.. [3] 비와바람 2015.05.19 2581
8723 디비 용량 확보 관련 [1] hhhh 2015.05.18 2427
8722 rollup 질문입니다. [3] 카르페디엠 2015.05.18 2410
8721 MSSQL 2000 to MSSQL 2014 마이그레이션 방법 문의 드립니다. [1] 꼬부랑 2015.05.15 5136





XE Login