ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL] MSSQL 스칼라 함수
    IT /DataBase 2013. 5. 27. 02:19
    728x90

    스칼라 함수란 단일값에 적용이 되어서 단일값의 결과를 돌려주는 함수를 말한다.

    스칼라 함수의 종류에는 구성함수, 커서함수, 날짜 시간 함수, 수치연산함수, 메타데이터 함수, 보안함수, 문자열 함수, 시스템 함수, 시스템 통계함수, 텍스트및 이미지 함수 등이 있다.

       

    • 구성함수

         

    • @@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  

       



Designed by Tistory.