Serach

2013년 10월 10일 목요일

MS-SQL Scalar Functions

* 구성 함수 : 현재 구성에 대한 정보를 알 수 있다. 
-------------------------------------------------------------------------------------------
@@LANGID, @@LANGUAGE  : <예>SELECT @@LANGID
현재 설정된 언어의 코드번호 및 언어를 확인할 수 있다. 한국어의 경우에는 29가 출력된다. 다른 언어의 ID는 sp_helplanguage 저장프로시저를 실행하면 확인할 수 있다.

@@SERVERNAME : 현재 인스턴스의 이름을 확인할 수 있다.

@@SERVICENAME : 서비스의 이름을 돌려준다. 기본 인스턴스인경우에는 "MSSQLSERVER"를, 명명된 인스턴스의 경우에는 인스턴스 이름을 돌려준다.

@@SPID : <예>SELECT @@SPID AS 'ID', SYSTEM_USER AS [로그인사용자], USER AS [사용자]
현재 세션 ID번호, 로그인 사용자, 사용자를 돌려준다.

@@VERSION : 현재 설치된 SQL Server의 버전 정보를 알려준다.






* 날짜 및 시간 함수 : 날짜 및 시간 입력 값에 대한 함수
-------------------------------------------------------------------------------------------
GETDATE : <예>SELECT GETDATE()
현재 날짜와 시간을 돌려준다

DATEADD : <예>SELECT DATEADD(day, 100, '2012/05/29')
날짜에 더한 결과를 돌려준다.
2012년 5월 29일부터 100일 후의 날짜를 돌려준다.
Day 대신에 year, month, week, hour, minute, second 등이 올 수 있다.

DATEDIFF : <예>SELECT DATEDIFF(week, GETDATE(), '2022/05/29')
두 날짜의 차이를 돌려준다.
현재부터 2022년 5월 29일까지 남은 주를 알려준다.

DATENAME : <예>SELECT DATENAME(weekday, '2022/05/29')
날짜와 지정한 부분만 돌려준다.
2022년 5월 29일이 무슨 요일인지 알려준다.

DAY, MONTH, YEAR : <예>SELECT MONTH('2022/05/29')
지정된 날짜의 일/월/년을 돌려준다. 05를 돌려준다.





* 수치 연산 함수
-------------------------------------------------------------------------------------------
ABS : <예>SELECT ABS(-100)
수식의 절대 값을 돌려준다. 절대 값인 100을 돌려준다.

ROUND : <예>SELECT ROUND(1234.5678, 2), ROUND(1234.5678, -2)
자릿수를 올려서 돌려준다. 1234.5700과 1200.0000을 돌려준다.

RAND : <예>SELECT RAND()
0~1까지의 임의의 숫자를 돌려준다.

SQRT : 제곱근 값을 돌려준다.

POWER : <예>SELECT POWER(3, 2)
거듭제곱 값을 돌려준다. 3의 2제곱인 9를 돌려준다.

이 외에도 DEGREES, ACOS, EXP, ASIN, FLOOR, SIGN, ATAN, LOG, SIN, ATN2, LOG10, CEILING, PI, SQUARE, COS, TAN, COT, RADIANS 등이 있다.





* 메타데이터 함수 : 데이터베이스 및 데이터베이스 개체의 정보를 반환한다.
-------------------------------------------------------------------------------------------
COL_LENGTH : <예> USE sqlDB
                              SELECT COL_LENGTH('userTBL', 'name')
데이터베이스 칼럼의 길이를 돌려준다.
주의 - NVACHAR 형이나 NCHAR 형은 지정한 것보다 2배의 크기가 나온다.

DB_ID, DB_NAME : <예>SELECT DB_ID(N 'AdventureWorks'); SELECT DB_NAME(6);
DB의 ID 또는 DB의 이름을 돌려준다.
DB_ID()는 AdventureWorks DB의 id 번호인 6을 돌려주고, DB_NAME()은 6번 DB의 이름인 AdventureWorks를 돌려준다. (경우에 따라 다름)

OBJECT_ID, OBJECT_NAME : <예>SELECT OBJECT_ID(N 'sqlD.dbo.userTbl');
                                                  SELECT OBJECT_name(2089058478);
Object의 ID 또는 Object의 이름을 돌려준다.
OBJECT_ID()는 개체의 ID를 돌려주고, OBJECT_NAME()은 개체 이름을 돌려준다.





* 문자열 함수 : 문자열을 조작한다. 활용도가 높으므로 잘 알아두도록 한다.
-------------------------------------------------------------------------------------------
ASCII, CHAR : <예>SELECT ASCII('A'), CHAR(65)
문자열의 아스키코드 값을 돌려주거나 아스키코드 값의 문자를 돌려준다(0~255 범위).
65와 A를 돌려준다.

UNICODE, NCHAR : <예>SELECT UNICODE('가'), NCHAR(44032
문자의 유니코드 값을 돌려주거나 유니코드 값의 문자를 돌려준다(0~65535 범위).
44032와 '가'를 돌려 준다.

CHARINDEX : <예>SELECT CHARINDEX('Server', 'SQL Server 2005')
문자열의 시작 위치를 돌려준다.
'SQL Server 2005'에서 'Server'가 시작되는 위치인 5를 돌려준다.

LEFT, RIGHT : <예>ELECT LEFT('SQL sEERVER 2005', 3), RIGHT('SQL Server 2005', 4)
'SQL Server 2005'에서 왼쪽의 세글자 'SQL'과 오른쪽 네 글자 '2005'를 돌려준다.

SUBSTRING : <예>SELECT SUBSTRING('대한민국화이팅', 3, 2)
지정된 위치부터 지정한 개수의 문자를 돌려준다.
'대한민국화이팅'에서 3번째부터 2글자인 '민국'을 돌려준다.

LEN : <예>SELECT LEN('SQL Server 2005')
문자열의 길이를 돌려준다. 'SQL Server 2005'의 글자수 15를 돌려준다.

LOWER, UPPER : <예>SELECT LOWER('abcdEFGH'), UPPER('abcdEFGH')
소문자를 대문자로, 대문자를 소문자로 변경한다.
'abcdefgh'와 'ABCDEFGH'를 돌려준다.

LTRIM, RTRIM : <예>SELECT LTRIM('  공백앞뒤두개  '), RTRIM('  공백앞뒤두개  ')
왼쪽 공백문자 및 오른쪽 공백문자를 제거해 준다.
'공백앞뒤두개  '와 '  공백앞뒤두개'를 돌려준다.

REPLACE : <예>SELECT REPLACE('SQL Server 2005', 'Server', '서버')
문자열의 내용을 지정한 것으로 찾아서 바꾼다.
'SQL Server 2005'에서 'Server'를 찾아서 '서버'로 바꾼다.

REPLICATE : <예>SELECT REPLICATE('SQL', 5)
문자열을 지정한 수만큼 반복한다.
'SQL'을 5번 반복하여 돌려준다.

SPACE : <예>SELECT SPACE(5)
공백을 지정한 수만큼 반복한다.
'     ' (공백 5개)를 돌려준다.

REVERSE : <예>SELECT REVERSE('SQL Server 2005')
문자열의 순서를 거꾸로 만든다.
'5002 revreS LQS'를 돌려준다.

STR : 숫자를 문자로 변환한다(CAST나 CONVERT를 대신 사용 권장).

STUFF : <예>SELECT STUFF('SQL Server 2005', 5, 2, 'Server')
문자를 지정한 위치의 개수만큼 삭제한 후에, 새로운 문자를 끼워 넣는다.
'SQL 서버 2005'의 5번째부터 2글자('서버')를 삭제한 후에 'Server'를 끼워넣는다.


댓글 없음:

댓글 쓰기