본문 바로가기
  • [성공하는 개발자] - Developer
728x90

쿼리11

[MSSQL] LIKE 연산자 사용법 (NOT LIKE, 정규식) SQL Server에서 특정 문자열이 포함되었는지 검색을 할 때에는 LIKE 연산자를 사용하면 된다. SQL Server에서 LIKE 연산자는 타 데이터베이스와 조금 차이가 있는데 기본 옵션이 대소문자를 구분하지 않는다는 것이다. 그리고 정규식의 일부 기능인 문자 범위 패턴만 검색이 가능하다. REGEXP_LIKE와 같은 정규식 LIKE 함수는 없다. % : 0개 이상의 어떠한 문자열이 존재해도 상관없음 _ : 밑줄(_) 개수 만큰 문자가 존재해야 함 [] : 대괄호([]) 안의 지정된 문자 범위 또는 문자가 존재해야 함 [^] : 대괄호([]) 안의 지정된 문자 범위 또는 문자 외의 문자가 존재해야 함 ■ 기본 사용법 (LIKE, NOT LIKE, 대소문자 구분) SELECT * FROM Languag.. 2022. 11. 14.
[MSSQL] 시작일자 종료일자 사이 모든 일자를 조회하는 방법 쿼리문을 작성하다 보면 테이블에 데이터는 없지만 시작일자와 종료일자 사이의 일자(날짜)를 포함하여 조회해야 할 때가 있다. 날짜만 들어있는 테이블을 생성해서 조인하여 사용해도 되지만, 해당 기간의 데이터를 동적 뷰로 생성하여 일시적으로 사용할 수도 있다. 날짜 뷰를 생성하기 위해서는 재귀 쿼리(WITH CTE) 또는 master..spt_values 시스템 테이블을 사용하면 된다. MSSQL 기간내 모든 일자(날짜) 조회 ■ 재귀 쿼리(WITH CTE)로 날짜 뷰 만들기 WITH DateRange(Dates) AS ( SELECT CONVERT(DATE, '2021-12-01') --시작일자 UNION ALL SELECT DATEADD(d, 1, Dates) FROM DateRange WHERE Date.. 2022. 11. 14.
[MSSQL] 공백 제거 방법 (TRIM, LTRIM, RTRIM) SQL Server에서 문자열의 양쪽 공백을 제거하기 위해서는 TRIM, LTRIM, RTRIM 함수를 사용하면 된다. TRIM 함수는 SQL Server 2017 버전부터 지원하므로 이전의 버전에서는 LTRIM과 RTRIM 함수를 동시에 사용하여 문자열의 양쪽 공백을 제거해야 한다. ■ 공백 제거 방법 (TRIM, LTRIM, RTRIM) SELECT TRIM(' SQL Server ') AS [TRIM] , LTRIM(' SQL Server ') AS [LTRIM] , RTRIM(' SQL Server ') AS [RTRIM] TRIM : 문자열의 양쪽 공백을 제거 (SQL Server 2017부터 사용 가능) LTRIM : 문자열의 왼쪽 공백을 제거 RTRIM : 문자열의 오른쪽 공백을 제거 ■ 문.. 2022. 11. 14.
[MSSQL] 숫자 앞에 0 채우기, 자리수 맞추기 (LPAD) SQL Server에서 숫자 앞에 "0"을 채워서 일정한 길이의 문자열을 만들기 위해서는 FORMAT, RIGHT, REPLICATE 함수를 사용하면 된다. SQL Server에는 오라클의 LPAD 함수는 사용할 수 없으므로 아래의 예제를 참고하면 비슷한 효과를 낼 수 있다. ■ FORMAT 함수 사용 (방법1) SELECT FORMAT(1, '00000') AS result1 , FORMAT(12, '00000') AS result2 , FORMAT(123, '00000') AS result3 FORMAT("수치 값", "채울 값") FORMAT 함수는 SQL Server 2012 이상에서 사용할 수 있으므로 이하의 버전에서는 아래의 RIGHT, REPLICATE 함수를 사용해야 한다. SELECT F.. 2022. 11. 14.
[MSSQL] 년, 월, 일 추출 방법 (YEAR, MONTH, DAY) SQL Server에서 날짜 데이터의 년, 월, 일을 추출할 때 사용하는 기본적인 함수는 YEAR, MONTH, DAY이며, 정수로 결과를 반환한다. 앞의 세 가지 함수 외에도 DATENAME, DATEPART라는 함수도 있는데 DATENAME 함수는 결과를 문자로 반환하고 DATEPART 함수는 결과를 정수로 반환한다. ■ YEAR, MONTH, DAY 함수 사용법 SELECT YEAR(GETDATE()) AS [YEAR] , MONTH(GETDATE()) AS [MONTH] , DAY(GETDATE()) AS [DAY] 위의 세 가지 함수를 사용하여 날짜에서 쉽게 년, 월, 일을 추출할 수 있다. 그러나 반환 값이 정수이므로 문자열과 합치게 되면 오류가 발생한다. ■ 반환 값을 문자열과 합치는 방법 .. 2022. 11. 14.
[MSSQL] 중복 제거 방법 (DISTINCT) SQL Server에서 중복된 행을 제거하고 한 번만 표시하고 싶다면 DISTINCT를 사용하면 된다. 중복 행을 제거하는 방법은 DISTINCT 사용하는 방법 외에도 GROUP BY 절을 사용해서 중복 행을 제거할 수 있다. GROUP BY를 사용하면 속도가 조금 빠르다는 얘기가 있으나 큰 차이를 느끼지 못했다. GROUP BY를 사용해야 할 특별한 경우가 아니면 중복 행을 제거할 때는 DISTINCT를 사용할 것을 권장한다. DISTINCT를 사용해도 중복을 제거한 결과가 오름차순으로 정렬되어서 조회된다. (SQL Server 2019) ■ DISTINCT를 사용하여 중복 제거 SELECT DISTINCT deptno, job FROM emp WHERE deptno in (20, 30) 중복 행이 제.. 2022. 10. 28.
728x90