스칼라 함수란 단일값에 적용이 되어서 단일값의 결과를 돌려주는 함수를 말한다.
스칼라 함수의 종류에는 구성함수, 커서함수, 날짜 및 시간 함수, 수치연산함수, 메타데이터 함수, 보안함수, 문자열 함수, 시스템 함수, 시스템 통계함수, 텍스트및 이미지 함수 등이 있다.
구성 함수
@@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()
- 2009년 10월 10일부터 100일 후의 날짜를 돌려준다. day 대신에 year, month, week, hour, minute, second 등이 올 수 있다. ex) SELECT DATEADD (day, 100, '2009/10/10')
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' 를 끼워 넣는다.
출처: https://121202.tistory.com/22 [방구석:티스토리]
'프로그래밍 언어 > SQL' 카테고리의 다른 글
[SQL] 데이터베이스 키(KEY) 종류 (0) | 2023.12.29 |
---|---|
[SQL] DATETIME 원하는 유형으로 변경 (YYMMDD) (0) | 2023.12.29 |
[SQL] 데이터베이스, 테이블 생성하기 (0) | 2023.12.21 |
[SQL] 테이블 생성, 입력, 조회 및 정렬 (0) | 2023.12.18 |
[SQL] 키(슈퍼키,대체키,후보키,기본키,외래키) (0) | 2022.07.11 |