SQL Server에서 문자열을 날짜로 변환하거나, 문자열을 날짜로 변환할 때 CONVERT, FORMAT, CAST 같은 다양한 함수를 사용하여 결과를 얻을 수 있다. CONVERT() 함수는 날짜 스타일 코드를 통해 입력 문자열의 형식을 명확하게 지정할 수 있으며, FORMAT() 함수는 출력 형태를 자유롭게 지정할 수 있어서 조금 더 직관적이고 쉽게 포맷을 지정할 수 있다. CAST 함수는 ANSI SQL 표준 함수이기 때문에 다양한 DBMS와 호환이 된다. 목차날짜를 문자열로 변환 방법 (CONVERT, FORMAT)문자열을 날짜로 변환 방법 (CONVERT, CAST)날짜 스타일 코드(포맷) 정리표 날짜를 문자열로 변환 방법 (CONVERT, FORMAT)SELECT CONVERT(VARCHAR..
SQL Server에서 수치값의 음수 부호를 제거하고 절댓값을 구하기 위해서는 ABS() 함수를 사용하면 된다. 절댓값은 수치값에서 부호를 제거한 값을 의미하며, 양수는 그대로 출력되고, 음수는 마이너스(-) 부호가 제거된 양수로 반환된다. SELECT -12 AS result1 , ABS(-12) AS result2 ABS(-12) : 절대값 함수 ABS()를 사용해 음수부호를 없애고 양수 12로 변환하여 출력한다. SELECT ABS(12) AS result1 , ABS(12.5) AS result2 , ABS(0) AS result3 , ABS(-12) AS result4 , ABS(-12.5) AS result5 , ABS(..
SQL Server에서 문자열에 특정 문자가 포함되어 있는지 확인하고 싶을 때는 CHARINDEX, PATINDEX, LIKE 세 가지 방법을 주로 사용한다. 각 함수는 용도에 따라 장단점이 다르며 상황에 따라서 적절한 방법을 선택하면 된다.CHARINDEX (오라클 INSTR 함수와 유사)는 정확한 문자열이 어느 위치에 있는지를 찾을 수 있으며 , PATINDEX는 패턴 기반(와일드카드 포함)의 문자열 위치 탐색이 가능하다. LIKE는 결과가 TRUE 또는 FALSE로만 반환되며, 조건 필터링에 가장 자주 사용된다. 목차CHARINDEX 함수를 사용하여 문자열 포함 여부 구하기PATINDEX 함수를 사용하여 문자열 포함 여부 구하기LIKE 연산자를 사용하여 문자열 포함 여부 구하기차3 CHARINDEX..
SQL Server에서 문자열의 길이를 구하기 위해서는 LEN 함수와 DATALENGTH 함수를 사용하면 된다. LEN 함수는 한글이든 영문이든 모든 문자를 글자 단위로 1자씩 계산하며, DATALENGTH 함수는 문자열이 실제로 차지하는 바이트 수를 반환한다. 두 가지 함수를 사용할 때 주의해야 할 부분도 있으니 아래를 참고하면 된다. 목차LEN, DATALENGTH 함수 기본 사용법LEN, DATALENGTH 함수 사용 시 주의사항 LEN, DATALENGTH 함수 기본 사용법SELECT LEN('SQL Server') AS [LEN] , DATALENGTH('SQL Server') AS [DATALENGTH] LEN('SQL Server') → 10자LEN 함수는 한글이든 영문..
SQL Server에서 숫자의 소수점 자릿수를 반올림하거나 소수점 자리를 고정해야 할 경우가 있다. 이럴 때는 ROUND, CAST, CONVERT, FORMAT, STR, FLOOR 함수를 사용할 수 있으며, 아래의 소수점 자릿수를 조절할 수 있는 5가지 방법을 이해하면 상황에 맞는 적합한 방법을 사용할 수 있을 것이다. 목차ROUND 함수로 소수점 2자리 반올림FORMAT 함수로 소수점 2자리 반올림 및 고정CAST 또는 CONVERT 함수로 소수점 2자리 출력STR 함수로 소수점 고정 길이 문자열 반환ROUND 또는 FLOOR 함수로 절사(버림) 처리 방법 ROUND 함수로 소수점 2자리 반올림SELECT ROUND(123.4, 2) AS result1 , ROUND(123.456, 2)..
SQL Server에서 특정 문자를 기준으로 문자열을 자르기 위해 가장 자주 사용하는 방법 CHARINDEX, SUBSTRING, LEFT, RIGHT, 그리고 STRING_SPLIT 함수이다. 이 함수들을 적절히 활용하면 구분자(하이픈 -, 쉼표 ,, 슬래시 / 등)가 포함된 문자열에서 원하는 위치에 따라 앞부분, 뒷부분, 중간 값까지 정확하게 추출할 수 있다. 목차특정 문자 기준으로 문자열을 자르는 방법특정 문자 기준으로 문자열을 행으로 분리하는 방법 특정 문자 기준으로 문자열을 자르는 방법SELECT SUBSTRING('sql-server', 1, CHARINDEX('-', 'sql-server') - 1) AS result CHARINDEX('찾을 문자', '대상 문자열')SUBSTRING('대..
SQL Server에서 특정 문자열을 반복해서 출력하고 싶을 때, 가장 유용하게 사용할 수 있는 방법이 REPLICATE 함수이다. 공백을 여러 번 추가하거나, 특정 문자를 반복해서 포맷을 맞춰야 할 때, 직접 문자열을 여러 번 붙이는 방식은 비효율적이고 가독성도 떨어진다. 이럴 때 REPLICATE 함수를 사용하면 깔끔하게 반복 문자열을 만들 수 있으며, 공백 추가, 패턴 생성, 자릿수 정렬 등 다양한 실무 상황에 활용할 수 있다.목차REPLICATE 함수 기본 사용법REPLICATE 함수 활용 방법REPLICATE 함수 기본 사용법SELECT REPLICATE('A', 2) AS result1 , REPLICATE('A', 5) AS result2 , REPLICATE('A', 10..
SQL Server에서는 문자열에서 숫자만 추출하기 위해서는 SUBSTRING, PATINDEX 함수를 사용하여 숫자 부분을 자르거나, TRANSLATE 함수를 사용하여 문자를 공백으로 치환하여 숫자만 추출하는 방법이 있다. MSSQL에서는 REGEXP_REPLACE 같은 정규식 함수가 없기 때문에 위의 방법을 사용하거나, 문자열의 추출하는 사용자 함수를 생성하여 숫자를 추출해야 한다. 아래의 예제는 문자열에 하나의 숫자만 존재할 경우 유효한 방법이니 이점을 유의하여 참고하기 바란다. 목차문자열 자르기로 숫자를 추출하는 방법문자 치환을 사용하여 숫자를 추출하는 방법 문자열 자르기로 숫자를 추출하는 방법WITH SampleData AS ( SELECT 'cc_7000' AS StrVal UN..
SQL Server에서 특정 기준의 소계 및 합계를 구할 때는 GROUPING SETS를 사용하면 쉽게 해결된다. GROUPING SETS는 ROLLUP과 CUBE 보다 더 다양한 합계를 구할 수 있으며 조금 더 기능이 강력하다고 생각하면 된다. 그러나 처음 사용할 때는 조금 복잡하다고 생각될 수 있지만, 괄호 사용법에 대해서 조금만 이해한다면 크게 어렵지 않게 사용할 수 있다. GROUPING SETS 사용법 합계, 총합계 구하기 SELECT job , SUM(sal) FROM emp WHERE job IN ('ANALYST', 'MANAGER', 'SALESMAN') GROUP BY GROUPING SETS(job, ()) GROUPING SETS는 그룹 칼럼을 입력하면 해당 칼럼별(job) 합계가 ..
SQL Server에서 모든 경우의 합계를 구할 때는 CUBE 함수를 사용하면 된다. 일반적인 합계를 구할 때는 SUM 함수를 사용하지만, 합계와 소계를 동시에 구하기 위해서는 ROLLUP, CUBE, GROUPING SETS 함수를 사용할 수 있다. 합계와 소계를 구하는 3가지 함수는 조금씩 결과가 다르게 출력되니, 상황에 맞게 사용하면 된다. CUBE 함수 사용법 SELECT job , SUM(sal) FROM emp WHERE job IN ('ANALYST', 'MANAGER', 'SALESMAN') GROUP BY CUBE(job) 그룹 칼럼 job에 대한 합계가 조회된 결과에 출력된다. 그룹 칼럼이 한 개인 경우 ROLLUP 함수와 동일한 결과가 출력된다. 그러나 그룹 칼럼이 여러 개인 경우 다..