DB(6)
-
[mysql] 상위 n개 뽑기
LIMIT 지정한 N개의 데이터를 뽑음 0부터 시작 범위 지정 가능 (n, m) 전체 데이터 1. 상위 3개의 데이터를 뽑아보자 1 2 3 4 5 6 SELECT A.NAME, A.DATETIME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE B.ANIMAL_ID IS NULL ORDER BY A.DATETIME LIMIT 3 Colored by Color Scripter cs 0,1,2번 데이터 출력됨 2. 상위 1번째에서 3번째 데이터 뽑기 1 2 3 4 5 6 SELECT A.NAME, A.DATETIME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID =..
2023.07.06 -
문자열에서 대소문자 구분없애기 - upper, lower, initcap
sql에서 문자열을 다루다보면 마주하는 여러가지 상황이 있다. 대소문자의 구분을 없애야 하는 경우 소문자로 들어온 데이터들의 값을 대문자로 바꾸어야하는 경우 소문자로 이루어진 문자열의 첫 글자를 대문자로 바꾸어야 하는 경우 이를 해결할 수 있는 문법 3가지를 설명하는 글이다. 1. upper 문자열을 대문자로 바꿔주는 기능이다. upper('문자열') or upper(컬럼명) ex) 1 2 SELECT name, upper(name) upper_name from animal_ins cs 1-1. ucase(mysql) mysql 문법으로 upper와 같은 역할 1 2 SELECT name, upper(name) upper_name from animal_ins 2. lower 문자열을 소문자로 바꿔주는 기..
2023.01.29 -
SQL case 문법
case문에 대해 알아보자. case문은 여러가지 조건을 두고 조건마다 다른 값을 줄 때 사용하는 문법이다. (case when 조건1 then 출력값 when 조건2 then 출력값 else 출력값 end) as 별칭 보통 case문은 괄호 안에서 이루어진다. 모든 case문에 쓰인 글자가 컬럼명으로 쓰이면 길고 복잡해지기 때문에 괄호 안에 쓰고 별칭을 따로 지어준다. when에 쓰이는 조건은 필드에 대한 조건을 적어야 한다. 만약 모든 조건에 해당되지 않는다면 else에 해당하는 값이 출력된다. 마지막에는 end로 끝내줘야 한다. 예시 코드) 1 2 3 4 5 6 SELECT animal_type, (case when name is null then 'No name' else name end ) na..
2023.01.27 -
특정 문자열 포함 여부 확인하기
주소에 경기도가 들어가는 row를 출력해보자 like 문자열의 패턴을 찾는 함수이다. like는 와일드 카드와 함께 사용할 수 있다 Wildcard % : 0개 이상의 문자 _ : 하나당 1개의 문자 ex) % 1 2 3 SELECT WAREHOUSE_NAME, ADDRESS FROM FOOD_WAREHOUSE WHERE ADDRESS like '경기도%' cs where절 -> ADDRESS 칼럼 중 '경기도'로 시작하는 문자열 중에서만 추출하라 WHERE ADDRESS like '경기도%' 경기도로 시작하는 ADDRESS를 추출하라 WHERE ADDRESS like '%경기도' 경기도로 끝나는 ADDRESS를 추출하라 WHERE ADDRESS like '%경기도%' 경기도라는 글자가 포함된 ADDRE..
2023.01.21 -
[mysql / oracle] null 처리 : ifnull / nvl / coalesce
null을 처리할 때 보통 nvl을 많이 떠올릴 것이다. nvl(컬럼명, null일 경우 출력될 문자) 1 2 3 4 select to_char(sales_date, 'yyyy-mm-dd') sales_date , nvl(user_id, null) product_id from online_sale where to_char(sales_date, 'yyyy-mm') = '2022-03' cs 그러나 이것은 oracle의 문법이기 때문에 mysql에서는 쓸 수 없다. 대신 mysql에서는 ifnull을 사용한다. ifnull(컬럼명, null일 경우 출력될 문자) 1 2 3 4 select date_format(sales_date, '%Y-%m-%d') sales_date , ifnull(user_id, "n..
2023.01.20 -
[mysql/oracle] 날짜 형식 : DATE_FORMAT() / TO_CHAR
날짜 형식을 가져오고 싶을 때 TO_CHAR()를 많이 사용한다. 그러나 이 함수는 oracle 함수이기 때문에 mysql에서는 사용할 수 없다. 대신 mysql에는 date_format()이란 함수가 있다. date_format(형식 적용할 칼럼, '%y-%m-%d') 여기서 년도 부분을 주목하자. 만약 오늘의 날짜를 출력한다면 년도 부분은 23으로 출력될 것이다. 2023년, 즉 4글자로 출력하고 싶다면 소문자 y가 아닌 대문자 Y로 바꿔주면 된다. 시간을 출력할 때도 %h는 12시간, %H는 24시간으로 출력될 것이다. 예시) 1 2 3 select date_format(sales_date, '%Y-%m-%d') sales_date, product_id,user_id, sales_amount fro..
2023.01.20