-
[SQL] MSSQL 스칼라 함수IT /DataBase 2013. 5. 27. 02:19728x90
스칼라 함수란 단일값에 적용이 되어서 단일값의 결과를 돌려주는 함수를 말한다.
스칼라 함수의 종류에는 구성함수, 커서함수, 날짜 및 시간 함수, 수치연산함수, 메타데이터 함수, 보안함수, 문자열 함수, 시스템 함수, 시스템 통계함수, 텍스트및 이미지 함수 등이 있다.
-
구성함수
-
@@LANDGID , @@LANGUAGE
-
현재 설정된 언어의 코드 번호 및 언어를 확인할수 있다.
ex) select @@LANGID
한국어의 경우에는 29가 출력이 된다. 다른 언어의 ID는 sp_helplanguage 저장 프로시저를 실행하면 확인할수 있다.
-
-
@@SERVERNAME
-
현재 인스턴스의 이름을 확인할수 있다.
ex) select @@SERVERNAME
-
-
@@SERVICENAME
-
서비스의 이름을 돌려준다.
ex) select @@SERVICENAME
기본 인스턴스인 경우에는 'MSSQL SERVER' 를, 명명된 인스턴스의 경우에는 설치할때 지정한 인스턴스 이름을 돌려준다.
-
-
@@SPID
-
현재사용자 프로세스의 세션 ID를 반환한다.
ex) SELECT @@SPID AS 'ID', SYSTEM_USER AS [로그인사용자], USER AS [사용자]
현재 세션 ID번호, 로그인 사용자, 사용자를 돌려준다.
-
-
@@VERSION
-
현재 설치된 SQL Server 의 버전, CPU의 종류, 운영체제 버전의 정보를 알려준다.
ex) select @@VERSION
-
날짜 및 시간 함수 : 날짜 및 시간 입력 값에 대한 함수
-
SYSDATETIME() , GETDATE()
-
현재의 날짜와 시간을 돌려준다.
ex) SELECT SYSDATETIME(), GETDATE()
날짜에 더한 결과를 돌려 준다.
-
-
DATEADD()
ex) SELECT DATEADD (day, 100, '2009/10/10')
2009년 10월 10일부터 100일 후의 날짜를 돌려준다.
day 대신에 year, month, week, hour, minute, second 등이 올수 있다.
-
DATEDIFF()
-
두 날짜의 차이를 돌려준다.
ex) SELECT DATEDIFF (wek, GETDATE(), '2022/10/19')
현재부터 2022년 10월 19일 까지 남은 주를 알려준다
-
-
DATENAME()
-
날짜의 지정한 부분만 돌려준다
ex) SELECT DATENAME (weekday, '2022/10/19')
2022년 10월 19일이 무슨 요일인지 알려준다.
-
-
DAY() , MONTH(), YEAR()
-
지정된 날짜의 일/월/년을 돌려준다.
ex) SELECT MONTH ( '2022/10/19')
2022년 10월 19일의 월인 10을 돌려준다.
-
수치연산 함수
-
ABS()
-
수식의 절대값을 돌려준다.
ex) SELECT ABS( -100)
절대 값인 100을 돌려 준다.
-
-
ROUND()
-
자릿수를 올려서 돌려준다.
ex) SELECT ROUND (1234.5678 , 2), ROUND(1234.5678 , -2)
1234.5700 과 1200.0000 을 돌려 준다.
-
-
RAND()
-
0~1까지의 임의의 숫자를 돌려준다.
ex) SELECT RAND()
-
-
SQRT() 제곱근의 값을 돌려준다.
-
제곱근의 값을 돌려준다,.
-
-
POWER()
-
거듭제곱 값을 돌려준다.
ex) SELECT POWER (3, 2)
3의 2제곱인 9를 돌려 준다.
-
-
이외에도 DRGREES, ACOS, EXP, ASIN, FLOOR, SIGN, ATAN, LOG, SIN, ATN2, LOG10, CEILING, PI, SQUARE, COS, TAN, SOT, RADIANS 등이 있다.
메타 데이터 함수 : 데이터 베이스및 데이터 베이스 개체의 정보를 반환한다.
- COL_LENGTH()
- DB_ID() , DB_NAME()
- OBJECT_ID() , OBJECT_NAME()
문자열 함수 : 문자열을 조작. 활용도가 높음
-
ASCII() , CHAR()
-
문자의 아스키 코드 값을 돌려주거나 아스키코드 값의 문자를 돌려준다 (0~255범위)
ex) SELECT ASCII('A'), Char(65)
65와 'A'를 돌려 준다.
-
-
UNICODE(), NCHAR()
-
문자의 유니코드 값을 돌려주거나 유니코드값의 문자를 돌려준다 ( 0~65535의 범위 )
ex) SELECT UNICODE('가'), NCHAR ( 44032)
44032와 '가'를 돌려 준다.
-
-
CHARINDEX()
-
문자열의 시작 위치를 돌려준다.
ex) SELECT CHARINDEX ('Server' , 'SQL Server 2008')
'SQL Server 2008'에서 'Server'가 시작되는 위치인 5을 돌려 준다.
-
-
LEFT() , RIGHT()
-
왼쪽/ 오른쪽/ 지정위치부터 지정한 수만큼을 돌려준다
ex) SELECT LEFT ('SQL Server 2008', 3), RIGHT('SQL Server 2008',4)
'SQL Server 2008' 에서 왼쪽의 세글자 SQL 과 오른쪽 네글자 2008을 돌려준다.
-
-
SUBSTRING()
-
지정한 위치부터 지정한 개수의 문자를 돌려준다.
ex) SELECT SUBSTRING ( N'대한민국 파이팅', 3, 2)
'대한민국화이팅' 에서 3번째 부터 2글자인 '민국'을 돌려준다.
-
-
LEN()
-
문자열의 길이를 돌려준다.
ex) SELECT LEN ('SQL Server 2008')
'SQL Server 2008' 의 글자수 15를 돌려 준다.
-
-
LOWER() , UPPER()
-
대문자를 소문자로 소문자를 대문자로 변경한다.
ex) SELECT LOWER('abcdEFGH'), UPPER('abcdEFGH')
abcdefgh 와 ABCDEFGH 를 돌려준다.
-
-
LTRIM() , RTRIM()
-
왼쪽 공백문자 및 오른쪽 공백문자를 제거해준다.
ex) SELECT LTRIM( ' 공백 앞뒤 두개 '), RTRIM( ' 공백앞뒤두개 ')
'공백앞뒤두개 ' 와 ' 공백앞뒤두개' 를 돌려 준다
-
-
REPLACE()
-
문자열의 내용을 지정한것으로 찾아서 바꾼다.
ex) SELECT REPLACE( 'SQL Server 2008', 'Server' , '서버')
SQL Server 2008 에서 Server를 찾아 서버로 바꾼다.
-
-
REPLICATE()
-
문자열을 지정한 수 만큼 반복한다.
ex) SELECT REPLICATE ('SQL', 5)
'SQL' 5번 반복하여 돌려 준다.
-
-
REVERSE()
-
문자열의 순서를 거꾸로 만든다.
ex) SELECT REVERSE ( 'SQL Server 2008 ')
'8002 revreS LQS' 를 돌려 준다.
-
-
SPACE()
-
공백을 지정한 수만큼 반복한다.
ex) SELECT SPACE (5)
' '공백 5개 를 돌려 준다.
-
-
STR()
-
숫자를 문자로 변환한다. ( CAST 나 CONVERT를 대신 사용 권장)
-
-
STUFF()
-
문자를 지정한 위치의 개수만큼 삭제 한후에 새로운 문자를 끼워넣는다.
ex) SELECT STUFF ('SQL 서버 2008', 5, 2, 'Server')
'SQL 서버 2008' 의 5번째 부터 2글자 ('서버')를 삭제 한후 'Server' 를 끼워 넣는다.
-
참고 : 뇌를 자극하는 SQL Server 2008
'IT > DataBase' 카테고리의 다른 글
[SQL] DB ,테이블 만들기, create table (0) 2013.05.27 [MSSQL] sp_addlinkedserver 프로시저. 외부 서버로 연결 (0) 2013.05.27 [DB용어] 스키마 (Schema) 의 개념 & 특징 (0) 2013.02.26 [DB용어] 뷰 (View) 의 개념 & 특징 (0) 2013.02.26 [DB용어] 트랜잭션( transaction ) 이란 ? (2) 2013.02.22 -