plming/DB(52)
-
MSSQL - IDENTITY
Oracle에서의 Sequence같은 PK로 사용할 수 있는 값이다. CREATE TABLE 명령을 사용하면서 컬럼에 IDENTITY(초기값,증가값) 을 넣으면 된다. 초기값, 증가값을 입력하지 않으면 (1,1)이 사용된다. Insert시마다 자동으로 증가해서 값이 들어가므로 굳이 Insert .. Value .. 에서 처리하지 않아도 된다. 요 IDENTITY 때문에 Select에서 쓰는 명령어가 있다. SELECT SCOPE_IDENTITY(), @@IDENTITY, IDENT_CURRENT('테이블명'); SCOPE_IDENTITY() 가 현재 세션에서 마지막으로 생성시킨 Identity 값을 얻는 것이고, @@IDENTITY 도 같은 의미이긴하지만 약간 다른 것이 내가 취한 명령때문에 동작한 Tr..
2015.07.15 -
iBatis 문자열 파라미터 비교
일반적으로 iBatis로 동적인 파라미터를 전달하여 처리할 경우 자주 사용되는 Map/HashMap에 이름/값 쌍을 입력시키고 Map params = new HashMap(); params.put( "put_name", "Y" ); arg1이 입력되었다면? 이라고 비교하려면 arg2가 입력되었고, "Y" 로 비교하려면 즉, 기본 문법따라 항상 "" 으로 양쪽을 싸고 적긴하지만 AND ... 하지만, 둘의 경우를 반대로 적으면... ^^;
2015.07.03 -
MSSQL - CONVERT 스타일 별 결과 값
Style 번호는 다른데, 출력 형태는 같은 것이 여럿있다...;;; 출처 : http://www.sqler.com/265068 스타일 결과 CONVERT(NVARCHAR, GETDATE(), 1) 10/14/10 CONVERT(NVARCHAR, GETDATE(), 2) 10.10.14 CONVERT(NVARCHAR, GETDATE(), 3) 14/10/10 CONVERT(NVARCHAR, GETDATE(), 4) 14.10.10 CONVERT(NVARCHAR, GETDATE(), 5) 14-10-10 CONVERT(NVARCHAR, GETDATE(), 6) 14 10 10 CONVERT(NVARCHAR, GETDATE(), 7) 10 14, 10 CONVERT(NVARCHAR, GETDATE(), 8)..
2015.05.12 -
MSSQL과 Oracle 함수 비교
출처 : http://www.sqler.com/269782 1. 문자 식에서 가장 왼쪽 문자의 ASCII 코드 값 반환 (숫자로 표시됨) 구분 MSSQL Oracle 함수 ASCII ASCII 용례 SELECT ASCII('A') SELECT ASCII('A') FROM DUAL 결과 65 65 è MSSQL이든 ORacle이든 ‘’ 안에 여러 개의 문자가 있어도 가장 좌측 값만 반환합니다. 즉, SELECT ASCII(‘A’) 나 SELECT ASCII(‘ABCDEFG’) 나 결과는 같습니다. 2. 문자 합치기 구분 MSSQL Oracle 함수 + CONCAT 또는 || 용례 SELECT '동해물과' + '백두산이' 1. SELECT '동해물과 ' || '백두산이' FROM DUAL 2. SELECT ..
2015.05.12 -
MSSQL - NEWID
16 Byte 영숫자 조합의 Key를 만들어낸다. 웬지 Transaction Key등으로도 써먹을 수 있을 듯 하다. MAC 주소와 시간 값의 조합으로 거의 중복되지 않는 Random값이 추출된다. SELECT REPLACE(NEWID(), '-', '') AS REF
2015.05.12 -
MSSQL - ROWNUM
Oracle의 ROWNUM과 같은... 하지만, Oracle에서처럼 바로 사용할 수는 없다. WHERE ROWNUM < 2; 한 번 더 감싸서 써야 한다...;;; SELECT ... FROM ( SELECT ROW_NUMBER() OVER(ORDER BY 컬럼) AS RNUM FROM ... WHERE ... ) a WHERE RNUM = 1
2015.05.12