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 2981
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 1928
8727 중복구간 삭제 쿼리 질문드립니다 [2] saysay218 2015.05.20 3941
8726 mssql lock 에 대해서 궁금한게 있어서요.. [4] 죄민수 2015.05.19 2735
8725 프로시저의 주석이 다 사라졌습니다. 흑흑 2015.05.19 2218
» MS-SQL 2012버전에서 임시테이블 관련 문의입니다.. [3] 비와바람 2015.05.19 2574
8723 디비 용량 확보 관련 [1] hhhh 2015.05.18 2420
8722 rollup 질문입니다. [3] 카르페디엠 2015.05.18 2405
8721 MSSQL 2000 to MSSQL 2014 마이그레이션 방법 문의 드립니다. [1] 꼬부랑 2015.05.15 5126
8720 사용자의 쿼리 추적하기 [2] Larry 2015.05.14 3052
8719 sp_executesql에서 ROW_NUMBER() ORDER BY절 설정이 안먹습니다. 돌브레인 2015.05.14 2778
8718 쿼리 운용시 발생하는 메세지들입니다. 어떤문제인지 확인부탁드립니다. [3] 지니79 2015.05.13 3059
8717 Count 쿼리문의 [2] 장성원_305526 2015.05.13 2368
8716 DDLTrigger에서 프로시저 내용이 짤리게 됩니다~ [2] 더따뜻한 2015.05.13 2439
8715 단가와 이전단가를 같이 가져오려면 [3] 냥냥 2015.05.12 2514
8714 디스크 보고서에 자동증가/축소 이벤트 항목이 뜨지 않아요.. [2] 졸리앙쥬 2015.05.12 2762
8713 로그인 계정 별 권한 스크립트 [3] 양아치베이비 2015.05.12 2830
8712 도움이필요합니다.] oci_define_by_name 질문입니다. [4] 니징구 2015.05.11 4190
8711 Update문 한번으로 모든 레코드의 값을 바꾸고 싶습니다. [2] 컴맹 2015.05.11 2689
8710 로그인 접속 기간 쿼리 문의입니다. [1] 짬자면굿 2015.05.09 2932
8709 페이징될 실제 페이지 번호 미리 알기 [1] DDM 2015.05.08 3452
8708 update 문의 [1] 준후택 2015.05.08 2373





XE Login