declare @max decimal --최대값
declare @min decimal --최소값
declare @k decimal --k값
declare @avr decimal --평균값
set @max = 4
set @min = 3
set @avr = 1
select @K = case when(@max-@min) = 0 then 0
else (@max-@min)/5 end
select @max, @min, @k
select
case when(@max-@min) = 0 then 0
else (@max-@min)/5 end
하고 싶은것은
최대값, 최소값, 평균값을 받아서 먼가를 계산하려고 합니다.
k값이라는것은
최대값에서 최소값 빼서 0이 나오면 0이고
아닐경우에는 최대값에서 최소값 뺀것을 5로 나누기 합니다 위에 있는부분
최종원하는 값은
저렇게 구한값으로
최소 < 평균 <= 최소 + K 이게 참이면 1
최소+k <평균<=최소 + 2K 이게 참이면 2
아닐경우에는 3
으로 보여주고 싶은데 표현을 잘 못하고 있네요
Comment 4
-
withSQLServer
2018.01.19 12:11
-
아싸라비아콜롬비아
2018.01.19 13:21
아하 저런방법이 있었군요
무릎은 한번 탁치고 갑니다..
근데 데시말에 (20,5)
이렇게하면 정수 20자리 소수점 5자리 잖아요그냥 데시말만 하면 그냥 정수로 최대 소수로 최대까지 되는건가요?
감사합니다.
-
withSQLServer
2018.01.19 14:16
도움되셨다니 다행이네요
msdn 에 설명된 내용으로 보면
10 진수[ (p[ ,s] )] 및 숫자 [ (p[ ,s] )]
고정 전체 자릿수 및 소수 자릿수 값입니다. 최대 전체 자릿수를 사용하는 경우 유효한 값은 - 10^38 + 1부터 10^38 - 1까지입니다. ISO 동의어 10 진수 는 dec 및 dec (p, s). 숫자 기능적으로 10 진수합니다.p(전체 자릿수)
소수점 왼쪽과 오른쪽에 저장할 최대 전체 자릿수입니다. 전체 자릿수 값은 1에서 최대 전체 자릿수인 38 사이여야 합니다. 기본 전체 자릿수는 18입니다.DECIMAL 을 자리수를 기입안하고 사용하시면 기본 전체 자릿수는 18로 되는 것 같습니다.
https://docs.microsoft.com/ko-kr/sql/t-sql/data-types/decimal-and-numeric-transact-sql
-
아싸라비아콜롬비아
2018.01.19 15:36
명시적으로 해야 속도가 빨라진다 그런건 아니고 그냥 일종의 설정 이라고 보면 되는거죠???
감사합니다
고수님