수색…


소개

SQL은 몇 가지 기본 제공 스. 라 함수를 제공합니다. 각 스. 라 함수는 하나의 값을 입력으로 취하고 결과 세트의 각 행에 대해 하나의 값을 출력으로 리턴합니다.

T-SQL 문에서 표현식이 허용되는 모든 곳에서 스칼라 함수를 사용합니다.

통사론

  • CAST (expression AS data_type [(length)])
  • 변환 (data_type [(길이)], 표현식 [, 스타일])
  • PARSE (string_value AS data_type [USING culture])
  • DATENAME (날짜 부분, 날짜)
  • GETDATE ()
  • DATEDIFF (datepart, startdate, enddate)
  • DATEADD (날짜 부분, 숫자, 날짜)
  • 선택 (색인, val_1, val_2 [, val_n])
  • IIF (boolean_expression, true_value, false_value)
  • 기호 (numeric_expression)
  • POWER (float_expression, y)

비고

스칼라 또는 단일 행 함수는 전체 결과 집합에서 작동하는 집계 함수 와 달리 결과 집합에서 데이터의 각 행을 조작하는 데 사용됩니다.

스칼라 함수에는 10 가지 유형이 있습니다.

  1. 구성 함수는 현재 SQL 인스턴스의 구성에 대한 정보를 제공합니다.
  2. 변환 함수는 주어진 조작에 대해 데이터를 올바른 데이터 유형으로 변환합니다. 예를 들어 이러한 유형의 함수는 문자열을 날짜 또는 숫자로 변환하여 두 가지 유형을 비교할 수 있도록 정보를 다시 형식화 할 수 있습니다.
  3. 날짜 및 시간 함수는 날짜 및 시간 값이 들어있는 필드를 조작합니다. 숫자, 날짜 또는 문자열 값을 반환 할 수 있습니다. 예를 들어, 함수를 사용하여 요일이나 연도의 현재 요일을 검색하거나 날짜에서 해당 연도 만 검색 할 수 있습니다.

날짜 및 시간 함수에 의해 반환되는 값은 SQL 인스턴스를 실행하는 컴퓨터의 운영 체제에 대해 설정된 날짜 및 시간에 따라 달라집니다.

  1. 논리 연산자를 사용하여 연산을 수행하는 논리 함수. 조건 집합을 평가하고 단일 결과를 반환합니다.
  2. 수학 함수는 수식에 수학 연산 또는 계산을 수행합니다. 이 유형의 함수는 단일 숫자 값을 리턴합니다.
  3. 메타 데이터 함수는 이름 및 데이터베이스 객체와 같은 지정된 데이터베이스에 대한 정보를 검색합니다.
  4. 보안 기능은 데이터베이스 사용자 및 역할에 대한 정보와 같이 데이터베이스의 보안을 관리하는 데 사용할 수있는 정보를 제공합니다.
  5. 문자열 함수 는 문자열 값에 대한 연산을 수행하고 숫자 또는 문자열 값을 반환합니다.

문자열 함수를 사용하여 예를 들어 데이터 결합, 하위 문자열 추출, 문자열 비교 또는 문자열을 모두 대문자 또는 소문자로 변환 할 수 있습니다.

  1. 시스템 함수는 작업을 수행하고 현재 SQL 인스턴스에 대한 값, 객체 및 설정에 대한 정보를 반환합니다.
  2. 시스템 통계 함수는 현재 SQL 인스턴스에 대한 다양한 통계를 제공합니다 (예 : 시스템의 현재 성능 수준을 모니터링 할 수 있도록).

문자 수정

문자 수정 기능 에는 문자를 대문자 또는 소문자로 변환하거나, 숫자를 서식있는 숫자로 변환하거나, 문자 조작을 수행하는 기능이 있습니다.

lower(char) 함수는 주어진 문자 매개 변수를 소문자로 변환합니다.

SELECT customer_id, lower(customer_last_name) FROM customer;

"SMITH"에서 "smith"로 변경된 고객의 성을 반환합니다.

날짜와 시간

SQL에서는 날짜 및 시간 데이터 유형을 사용하여 달력 정보를 저장합니다. 이러한 데이터 유형에는 시간, 날짜, smalldatetime, datetime, datetime2 및 datetimeoffset이 포함됩니다. 각 데이터 유형에는 특정 형식이 있습니다.


데이터 형식 체재
시각 hh : mm : ss [.nnnnnnn]
날짜 YYYY-MM-DD
smalldatetime YYYY-MM-DDh : mm : ss
날짜 시간 YYYY-MM-DD hh : mm : ss [.nnn]
datetime2 YYYY-MM-DD hh : mm : ss [.nnnnnnn]
datetimeoffset YYYY-MM-DD hh : mm : ss [.nnnnnnn] [+/-] hh : mm

DATENAME 함수는 날짜의 특정 부분의 이름 또는 값을 리턴합니다.

SELECT DATENAME (weekday,'2017-01-14') as Datename
데이터 이름
토요일

GETDATE 함수를 사용하여 현재 SQL 인스턴스를 실행하는 컴퓨터의 현재 날짜와 시간을 결정합니다. 이 함수에는 시간대 차이가 없습니다.

SELECT GETDATE() as Systemdate 
시스템 날짜
2017-01-14 11 : 11 : 47.7230728

DATEDIFF 함수는 두 날짜의 차이점을 반환합니다.

구문에서 datepart는 차이를 계산하는 데 사용할 날짜 부분을 지정하는 매개 변수입니다. datepart는 년, 월, 주, 일,시, 분, 초 또는 밀리 초일 수 있습니다. startdate 매개 변수에서 시작 날짜를 지정하고 차이를 찾으려는 enddate 매개 변수에서 종료 날짜를 지정하십시오.

SELECT SalesOrderID, DATEDIFF(day, OrderDate, ShipDate) 
AS 'Processing time'
FROM Sales.SalesOrderHeader
SalesOrderID 처리 시간
43659 7
43660 7
43661 7
43662 7

DATEADD 함수를 사용하여 특정 날짜의 일부에 간격을 추가 할 수 있습니다.

SELECT DATEADD (day, 20, '2017-01-14') AS Added20MoreDays
Added 20MoreDays
2017-02-03 00 : 00 : 00.000

구성 및 변환 기능

SQL에서 구성 함수의 예는 @@SERVERNAME 함수입니다. 이 함수는 SQL을 실행중인 로컬 서버의 이름을 제공합니다.

SELECT @@SERVERNAME AS 'Server'
섬기는 사람
SQL064

SQL에서 대부분의 데이터 변환은 사용자의 개입없이 암묵적으로 발생합니다.

암시 적으로 완료 할 수없는 변환을 수행하려면 CAST 또는 CONVERT 기능을 사용할 수 있습니다.

CAST 함수 구문은 CONVERT 함수 구문보다 간단하지만 수행 할 수있는 기능이 제한되어 있습니다.

여기서는 CASTCONVERT 함수를 사용하여 datetime 데이터 형식을 varchar 데이터 형식으로 변환합니다.

CAST 함수는 항상 기본 스타일 설정을 사용합니다. 예를 들어 YYYY-MM-DD 형식을 사용하여 날짜와 시간을 나타냅니다.

CONVERT 함수는 지정한 날짜 및 시간 스타일을 사용합니다. 이 경우 3은 날짜 형식 dd / mm / yy를 지정합니다.

USE AdventureWorks2012
GO
SELECT FirstName + ' ' + LastName + ' was hired on ' +
       CAST(HireDate AS varchar(20)) AS 'Cast',
       FirstName + ' ' + LastName + ' was hired on ' +
       CONVERT(varchar, HireDate, 3) AS 'Convert'
FROM Person.Person AS p
JOIN HumanResources.Employee AS e
ON p.BusinessEntityID = e.BusinessEntityID
GO
캐스트 변하게 하다
David Hamiltion은 2003 년 2 월 4 일에 고용되었습니다. David Hamiltion은 04/02/03에 고용되었습니다.

변환 함수의 또 다른 예는 PARSE 함수입니다. 이 함수는 문자열을 지정된 데이터 형식으로 변환합니다.

함수의 구문에서 변환해야하는 문자열, AS 키워드 및 필수 데이터 유형을 지정합니다. 선택적으로 문자열 값을 형식화해야하는 문화권을 지정할 수도 있습니다. 이것을 지정하지 않으면 세션의 언어가 사용됩니다.

문자열 값을 숫자, 날짜 또는 시간 형식으로 변환 할 수 없으면 오류가 발생합니다. 그런 다음 변환을 위해 CAST 또는 CONVERT 를 사용해야합니다.

SELECT PARSE('Monday, 13 August 2012' AS datetime2 USING 'en-US') AS 'Date in English'
영어로 된 날짜
2012 년 8 월 13 일 00 : 00 : 00.0000000

논리적 및 수학 함수

SQL에는 CHOOSEIIF 두 가지 논리 함수가 있습니다.

CHOOSE 함수는 목록의 위치를 ​​기반으로 값 목록에서 항목을 반환합니다. 이 위치는 색인에 의해 지정됩니다.

구문에서 index 매개 변수는 항목을 지정하며 정수 또는 정수입니다. val_1 ... val_n 매개 변수는 값 목록을 식별합니다.

SELECT CHOOSE(2, 'Human Resources', 'Sales', 'Admin', 'Marketing' ) AS Result;
결과
매상

이 예제에서는 CHOOSE 함수를 사용하여 부서 목록의 두 번째 항목을 반환합니다.


IIF 함수는 특정 조건에 따라 두 값 중 하나를 반환합니다. 조건이 true이면 true 값을 반환합니다. 그렇지 않으면 거짓 값을 반환합니다.

구문에서 boolean_expression 매개 변수는 부울 식을 지정합니다. true_value 매개 변수는 boolean_expression이 true로 평가 될 경우 반환되어야하는 값을 지정하고 false_value 매개 변수는 boolean_expression이 false로 평가 될 경우 반환되어야하는 값을 지정합니다.

SELECT BusinessEntityID, SalesYTD, 
       IIF(SalesYTD > 200000, 'Bonus', 'No Bonus') AS 'Bonus?'
FROM Sales.SalesPerson
GO
BusinessEntityID SalesYTD 보너스?
274 559697.5639 보너스
275 3763178.1787 보너스
285 172524.4512 보너스 없음

이 예제에서는 IIF 함수를 사용하여 두 값 중 하나를 반환합니다. 판매 인의 연간 판매액이 20만이 넘으면이 사람은 보너스를받을 수 있습니다. 200,000 미만의 값은 직원이 보너스를받을 자격이 없다는 것을 의미합니다.


SQL은 입력 값에 대한 계산을 수행하고 숫자 결과를 리턴하는 데 사용할 수있는 여러 가지 수학 함수를 포함합니다.


한 가지 예는 SIGN 함수입니다.이 함수는 표현식의 부호를 나타내는 값을 반환합니다. -1 값은 음수 표현을 나타내고 +1 값은 양수 표현을 나타내고 0은 0을 나타냅니다.

SELECT SIGN(-20) AS 'Sign'
기호
-1

이 예에서 입력은 음수이므로 결과 창에 결과가 나열됩니다 -1.


또 다른 수학적 기능은 POWER 기능입니다. 이 함수는 지정된 출력으로 표현 된 식의 값을 제공합니다.

구문에서 float_expression 매개 변수는 표현식을 지정하고 y 매개 변수는 표현식을 발생시키려는 출력을 지정합니다.

SELECT POWER(50, 3) AS Result
결과
125000


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow