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 6964 게시물 읽기
No. 6964
단위에 따라서 금액 소수점을 표시하려고 합니다.
작성자
선이
작성일
2016-04-04 11:13ⓒ
2016-04-04 11:41ⓜ
조회수
3,941

안녕하세요.

 

단위에 따라서 금액에 소수점을 표시하려고 합니다.

 

소수점을 관리하는 테이블(A)이 있습니다.

TEXT1 TEXT2

EA 0

ML 3

KG 2

 

아래와 같이 함수를 만들려고 하는데 생성시 오류가 발생합니다.

 

CREATE FUNCTION [dbo].[GETUNITMEASURETOPOINT] (

@p_unit_measure varchar(10),

@p_price varchar(10)

) RETURNS varchar(30)

AS

BEGIN

DECLARE @v_point int;

DECLARE @v_result varchar(30);

 

select

@v_point = CAST(text2 as int)

from A where text1 = @p_unit_measure;

 

select @v_result = CAST(CAST(@p_price AS NUMERIC(22, @v_point)) AS VARCHAR); <---에러발생

 

 

RETURN @v_result;

END

 

NUMERIC함수를 쓸때 소수점자리수에 변수를 넣을 수 없는건지요?

 

조언부탁드립니다.

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

SET @v_result
  = CASE @v_point
    WHEN 0 THEN CAST(CAST(@p_price AS NUMERIC(22, 0)) AS VARCHAR)
    WHEN 1 THEN CAST(CAST(@p_price AS NUMERIC(22, 1)) AS VARCHAR)
    WHEN 2 THEN CAST(CAST(@p_price AS NUMERIC(22, 2)) AS VARCHAR)
    WHEN 3 THEN CAST(CAST(@p_price AS NUMERIC(22, 3)) AS VARCHAR)
     END
;

마농(manon94)님이 2016-04-04 17:06에 작성한 댓글입니다.

역시 변수처리는 안되는군요.

전 if~ end else if~ end 하려고 했는데

case문으로 훨씬 명료하게 처리할수 있군요.

마농님 감사합니다.^^

선이님이 2016-04-04 17:30에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6967bat파일 관련.. [2]
초보DBA
2016-04-14
3981
6966프로시저 문의입니다.
프로시저
2016-04-12
3661
6965조건절 질문 입니다. [1]
질문객
2016-04-07
4066
6964단위에 따라서 금액 소수점을 표시하려고 합니다. [2]
선이
2016-04-04
3941
6963암호화 질문입니다.
우와
2016-03-30
3650
6961ODBC 이용 시 문제점..
초보DBA
2016-03-23
3836
6960쿼리 최적화 및 속도 개선의 도움이 필요합니다. [4]
redical
2016-03-21
4493
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다