전체 글(129)
-
[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 -
execute command denied to user 'USERD453CC44C96B0C3F4124EA8E47'@'%' for routine 'sql_runner_run.to_char'
programmers 문제를 풀고 있는데 계속 저 오류가 발생했다. mysql로 진행하고 있던 터라 혹시나 해서 oracle로 변경해서 실행하니 정상적으로 작동한다. to_char함수를 사용하다가 발생한 오류인데 to_char는 오라클의 문법이고 mysql에서는 사용할 수 없다. 대신에 mysql에는 date_format이라는 함수가 있다. 2022년 3월 데이터를 각각 oracle과 mysql에서 출력해보자. 1) oracle 1 2 3 select to_char(sales_date, 'yyyy-mm-dd') sales_date, product_id,user_id, sales_amount from online_sale where to_char(sales_date, 'yyyy-mm') = '2022-03..
2023.01.20 -
Column '...' in field list is ambiguous
sales_date는 a 테이블, b 테이블 모두 가지고 있는 칼럼이다. 그러므로 select에서 어느 테이블 소속인지 언급없이 sales_date라고만 적으면 작업을 처리할 때 어느 테이블을 보고 처리할 지 애매하기 때문에 발생하는 오류이다. 칼럼에 a.sales_date라고 소속만 적어주면 에러 해결 가능
2023.01.20 -
Unknown column '...' in 'where clause'
테이블을 조인해서 where절을 사용하면 종종 발생하던 오류 where절에서 조건을 준 칼럼이 해당 테이블에 없다는 뜻이다. 칼럼과 테이블을 잘못 매칭했을 확률이 크다
2023.01.20 -
K번째수
문제 예제 코드 1) Arrays.copyOfRange 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.util.*; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = {}; int[] temp = new int[commands.length]; for(int i=0; i
2023.01.19