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
운영게시판
최근게시물
PostgreSQL Q&A 8991 게시물 읽기
No. 8991
mysql 에서의 변수 사용.. @rnum := @rnum + 1 같은 표현식을 사용할 수 있나요?
작성자
김덕원(dukwon81)
작성일
2012-05-17 12:09
조회수
9,996

안녕하세요

초보 개발자입니다.

이번 프로젝트에서 postgresql 을 처음 사용하게 되었는데 처음 하는거라 어려움이 많네요 ^^;

여러가지 궁금한 점이 있어서 좀 여쭙고자 질문 글을 올립니다.

 

지금 하려고 하는 작업이 자료를 select 할 때 순서대로 1 ~ 100까지 넘버링을 해주고 100이상이면 1로 다시 초기화

후 다시 1~100까지 넘버링 이런식으로 해야 하는데요

MySQL 에서는

@rnum := @rnum + 1 이런식으로 증가 시켜 주다가

  CASE
  WHEN @rnum >= 100
  THEN @rnum := 0
  END

이런식으로 초기화 해주었었는데

PostgreSQL 에서는 어떠한 방식으로 처리를 해야하는지 궁금합니다.

 

그리고

SELECT @rnum 같은 쿼리는 PostgreSQL 에서는 어떻게 사용해야 하나요?

 

쉘 에서는 \set 변수명 value 같은 식으로 변수 선언해 주는 방법을 찾았는데

이 변수를 변경하는 방법을 모르겠네요.

다시 \set 변수명 value 로 하면 리셋 되기는 하는데

저는 연산이 하고 싶거든요

\set a 1

select a+1

처럼요..

 

읽어 주셔서 감사합니다 ^^

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

그런식으로 변수의 프로그램이 필요한데, 

그게 세션 안에서만 독립적이면, 

그냥  plpgsql 같은 프로시져 언어로 프로그래밍을 하는게 제일 편합니다. 

 

그렇지 않고, 서버 범위의 전역 변수라면, 

 postgresql.conf 파일에서 사용자 정의 클래스를 정의하고, 그것을 사용하는 방식으로 

마치 환경변수 사용하듯이 사용합니다. 

물론 이때로 이 변수 조작을 편하게 하려면, 프로시져가 편하겠죠.

 

\set 기능은 psql 의 내장 기능입니다. 

김상기(ioseph)님이 2012-05-17 23:23에 작성한 댓글입니다.

단순히 그렇게 번호 증가 식이라면

 

간단하게 row_number() 를 사용하면 될거 같네요..

 

100 마다 리사이클 하는거야 나머지 취해면 될거 같고요

 

tyro님이 2012-05-18 09:19에 작성한 댓글입니다. Edit

답변 감사드립니다.

김덕원(dukwon81)님이 2012-05-18 10:26에 작성한 댓글입니다.
이 댓글은 2012-05-18 11:12에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
8995현재 관리하고 있는 사이즈가 어떻게 되시나요? [1]
박병훈
2012-05-22
8948
8994UPSERT 직렬성 문제 [2]
김상기
2012-05-18
12037
8992함수의 결과값으로 여러행을 반환하고 싶은데요... [5]
iyob
2012-05-17
9618
8991mysql 에서의 변수 사용.. @rnum := @rnum + 1 같은 표현식을 사용할 수 있나요? [3]
김덕원
2012-05-17
9996
8990php의 exploder같은게 postgreSQL엔 없나요? [2]
이기자
2012-05-14
8699
8989DB연동 하는 방법좀 알려주세요 ㅜㅜ
지훈짱
2012-05-13
8681
8988pqxx 사용시 매번 쿼리 실행하지 않고 다른 방법도 있나요? [2]
2012-05-10
8689
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다