예전에 적어둔게 없었나..

아무튼.. ALTER SEQUENCE를 통해 RESTART WITH 뒤에 원하는 숫자를 넣어주면 해당 숫자로 시작을 다시 한다.

(예전 기억으로는 0은 안되고 1부터 시작했던 걸로 기억함.)

 

ALTER SEQUENCE "시퀀스이름" RESTART WITH 1

[링크 : https://gs.saro.me/dev?page=2&tn=5]

Posted by 구차니

댓글을 달아 주세요

개소리 왈왈/블로그2019. 11. 29. 18:56

습관이라는게 쉽게 바뀌지 않아서 하루 하나 이상의 글을 쓰자는 초기의 정책에서

좀 안써도 되는데~ 라는 쪽으로 바꾸려다가 실패했는데

이번에는 좀 강력하게(!) 정책을 변경할 예정

 

나를 위한 글에서

남들을 위한 글로 정책을 변경하여

 

조금은 더 친절하게 글을 쓸 예정

Posted by 구차니

댓글을 달아 주세요

SQL 문을 통해 이것저것 조인을 하다 보면

예상하지 못하게 이상하게 갯수가 많이 늘어가는 경우가 발생한다.

대개(?)는 1:1 조건인줄 알았던 테이블이 예상외로 1:N 조건이기 때문에 발생을 하는데

 

ROW_NUMBER() OVER(PARITION BY)를 이용하여 left join 결과를 정렬후

상위 쿼리에서(즉 LEFT_JOIN은 서버 쿼리에서 수행) ROW_NUMBER = 1인 조건으로 걸러내면 될 듯 하다.

 

일단 해보진 않았으니 패스~ 이론적으로만 알아둬야지.. 끄응

 

SELECT
    A.PersonName, A.Email
FROM
        (
        Select Person.PersonName, Email.Email
            ,ROW_NUMBER() OVER(PARTITION BY Person.ID ORDER BY Email.Email) AS RN
        From person 
        left join Email on Person.ID=Email.PersonId
        ) A
WHERE A.RN = 1

[링크 : https://dba.stackexchange.com/questions/103815...]

[링크 : https://stackoverflow.com/questions/3375436/how-do-i-limit-a-left-join-to-the-1st-result-in-sql-server]

 

+

UPDATE 쿼리에서 join을 통해 할 경우에도

아마도.. 물리적으로 배열된 컬럼중에 가장 위에것이 되지 않겠냐 라는 답변이 있는데

반대로 생각하면 할때 마다 다른 결과가 나올수도 있다.. 라는 의미가 된다.

[링크 : https://stackoverflow.com/questions/9502449/updating-and-join-on-multiple-rows-which-rows-value-is-used]

Posted by 구차니

댓글을 달아 주세요