database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 846 게시물 읽기
No. 846
[질문]쿼리 질문입니다.
작성자
공왕주
작성일
2003-06-13 14:14
조회수
4,333

안녕하십니까~ ms-sql 은 첨 사용하는 초보입니다.

 

쿼리를 하다가 의문나는 점이 있어서 이렇게 올립니다.

 

TESt 테이블의 A필드(varchar)에

--------------------

A필드

--------------------

0001

0002

0003

--------------------

 

위와 같이 들어가 있는데

 

쿼리(select ) 시 max값에다가 + 1 시켜서 가져오려고 합니다.

 

그런데 convert 함수를 사용하니깐

 

0002 => 2

0003 => 3

 

이런식으로 앞의 '000' 은 없어지고 숫자값만 나옵니다.

 

참고로 A필드는 varchar 형입니다.

 

어떤식으로 쿼리를 하면 제대로된 값이 나올수있는지 가려쳐 주십시요

 

오늘도 좋은하루 되시길~

이 글에 대한 댓글이 총 1건 있습니다.

SELECT RIGHT('0000' + CONVERT(VARCHAR(4),ISNULL(MAX(A),0) +1),4)

FROM TEST

 

그리고 단순히 KEY 생성을 위한 값의 증가라면,

자동 증가값을 사용하시는 것이 좋습니다.

좋은 점

1) 값 생성이 단순함.

(1) 그냥 INSERT하기만 하면 됨

- 값을 알기 위해서는 IDENT_CURRENT를

이용하시면 됩니다.

2) 다른 테이블에서 참조하는 필드라면 다른

테이블에서 참조를 위한 값 저장을 위한

저장 공간을 저장 사용할 수 있음.

(1) 현 테이블 자체의 저장 공간도 줄어 들겠죠.

3) 이 값을 CLUSTERED INDEX 값으로 사용하면

다른 index 생성시 index 저장 공간을 줄일 수

있습니다.

가을남자님이 2003-06-13 16:59에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
850[질문] MS-SQL 설치하기 적절한 OS?
이승준
2003-06-15
3787
849[질문] 테이블 백업하고 다시옮기면 왜 정보가.. [1]
최성인
2003-06-15
3873
847다른 서버에 있는 ms-sql 연결요? 급해요ㅠ.ㅠ
김현
2003-06-14
3681
846[질문]쿼리 질문입니다. [1]
공왕주
2003-06-13
4333
845mysql에서 데이터를 백업했는데요 [2]
장기영
2003-06-12
4785
844제가 생성한 DB들이 (주의 대상)이 되었습니다 [2]
서경철
2003-06-12
4299
843ok [1]
김종길
2003-06-11
3971
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다