SubQuery는 SQL을 작성하다 보면 빠질 수 없는 문법입니다. 서브쿼리에 종류와 특징을 파악하고 적절하게 사용할 줄 안다면 큰 도움이 될 것입니다. SubQuery의 종류 1. 일반 서브쿼리 : 하나의 변수처럼 사용합니다. 쿼리 결과에 따라 다음과 같이 구분됩니다. - 단일행 서브쿼리 (SingleRow Subquery) : 쿼리 결과가 단일행만을 리턴하는 서브쿼리입니다. - 다중행 서브쿼리 (MultieRow Subquery) : 쿼리 결과가 다중행을 리턴하는 서브쿼리입니다. - 다중칼럼 서브쿼리 (MultieColumn Subquery) : 쿼리 결과가 다중칼럼을 리턴하는 서브쿼리입니다. 2. 인라인 뷰 (Inline View) : 뷰 형태로써 테이블을 리턴하는 서브쿼리입니다. (테이블 대체) ..
문자가 포함되어있는지 확인하는 여부에 쓰이는 함수입니다. 매우 자주 쓰임으로 꼭 알아두면 유용합니다. 1. MS-SQL에서는 CHARINDEX() 함수를 사용합니다. SELECT CHARINDEX('A', 'AIDEN') - 'AIDEN' 이라는 문자열 내에서 'A'라는 문자가 있는지 없는지 확인합니다. 있다면 문자의 위치를 리턴합니다. 결과 : 1 ( 'AIDEN'이라는 문자열중 'A'의 위치는 첫 번째이기에 1을 리턴합니다. ) * CHARINDEX('A', 'AIDEN') 이 아니라 CHARINDEX('D', 'AIDEN')이라면 3을 리턴합니다. ( D 가 3번째에 위치함. ) 'A'라는 문자가 없다면 0을 리턴합니다. 2. Oracle과 MySql에서는 INSTR() 함수를 사용합니다. SELE..
SQL에서 문자를 합치는 기능에 관한 포스팅입니다 사용법은 굉장히 간단합니다 || (쌍파이프) 사용법 먼저 || (쌍파이프)는 문자(데이터)와 문자(데이터) 사이에 || 를 넣어주면 됩니다 아래와 같은 테이블이 있을 때 NAME CLASS POINT 철수 A 95 영희 B 80 SELECT NAME || CLASS || POINT AS 'ALL IN ONE' ALL IN ONE 철수A95 영희B80 이렇게 결과가 출력됩니다 지금 NAME, CLASS, POINT 값들이 다 붙어져 있어서 사이에 공백또는 문자로 연결하고 싶다면 SELECT NAME || ' ' || CLASS || ' ' || POINT AS 'ALL IN ONE WITH SPACE' -->> 사이사이 공백주기 SELECT NAME || ..
문자 길이를 채우는 함수들에 대해 포스팅하려고 합니다 LPAD , RPAD는 오라클에서 사용하는 아이들이고 REPLICATE는 MSSQL에서 사용합니다 LPAD / RPAD 사용법 (Oracle) SELECT LPAD(데이터, 고정길이, 문자) FROM DUAL --// 고정길이 안에 데이터를 출력하고 남는 공간을 문자로 채운다 --// LPAD는 왼쪽을 채우고 RPAD는 오른쪽을 채웁니다 SELECT LPAD('A', 4, 'B') AS TEST_LPAD FROM DUAL --// 결과: BBBA SELECT RPAD('A', 4, 'B') AS TEST_RPAD FROM DUAL --// 결과: ABBB LPAD/RPAD 함수는 세 개의 파라미터가 필요합니다 첫 번째 파라미터 'A'는 데이터입니다 ,..
SQL IN구문에 대해 포스팅하겠습니다 IN구문은 WHERE절 뒤에 붙여서 칼럼이 특정값을 가지고 있는지 확인하는 용도로 쓰입니다 먼저 설명에 쓰일 테이블입니다 사용법은 아래와 같습니다. SELECT 칼럼명 FROM 테이블명 WHERE 칼럼명 IN (값1, 값2 ...) -- 칼럼의 값이 값1 또는 값2에 해당하는 값만 출력 SELECT 칼럼명 FROM 테이블명 WHERE 칼럼명 NOT IN (값1, 값2 ...) -- 칼럼의 값이 값1, 값2 어디에도 해당하지 않는 것만 출력 예제로 이해하기 SELECT * FROM member WHERE name IN ('제갈량', '강감찬') WHERE절 뒤에 칼럼명 중에 IN 괄호 안에 있는 값을 가진 친구들만 출력하겠다는 내용입니다 name 칼럼에 제갈량 또는 ..
SELECT문으로 검색된 데이터를 정렬시키는 방법에 대해 포스팅하겠습니다 오름차순과 내림차순으로 정렬할 수 있는데요 ++ 오름차순 : 작은값 부터 큰 값 으로의 순서입니다 ++ 내림차순 : 큰값 부터 작은 값 으로의 순서입니다 먼저 설명할때 쓰일 테이블입니다 사용법은 간단합니다 SELECT 칼럼명 FROM 테이블명 ORDER BY 정렬 기준 칼럼명 DESC(내림차순) // ASC(오름차순) ORDER BY절 뒤에 정렬할 기준이되는 칼럼명을 적고 뒤에 DESC 또는 ASC로 내림차순이나 오름차순을 정의해주면 됩니다 SELECT * FROM member ORDER BY num DESC 이렇게 하면 조조 - 제갈량 - 강감찬 - 홍길동 순으로 위상태와 정반대로 출력이 됩니다 ASC(오름차순)은 기본 설정입니다..