728x90

https://www.hackerrank.com/challenges/japan-population/problem

 

Japan Population | HackerRank

Query to the sum of the populations of all Japanese cities in CITY.

www.hackerrank.com

[problem]

[analysis]

population 기준으로 sum 하고 countycode 조건 1개가 존재함

 

[solution]

728x90
728x90

https://leetcode.com/problems/not-boring-movies/

 

Not Boring Movies - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

[problem]

1. 홀수인경우

2. description 에 boring이 들어간 경우 제외

3. order by DESC 적용

[analysis]

1.where 절을 통한 조건 적용

--> 홀수인경우 id % 2 !=0 으로 나타낼 수 있음 / boring문자 제외도 !를 이용함

[solution]

728x90
728x90

CASEWHEN
>문법

CASE WHEN 조건절 THEN 참일때 값 ELSE 거짓일 때 값 END 컬럼명

>예제

테이블에서 user값이 0이면 정회원, 그 외엔 준회원일 때

SELECT DISTINCT 
USER,
CASE WHEN USER='0' THEN '정회원'  ELSE '준회원' END 회원상태
FROM USER_TABLE

>다중으로도 사용 가능함

SELECT *,
   (CASE WHEN SCORE>= '90' THEN 'A학점'
        WHEN (SCORE>= '80' AND SCORE < '90') THEN 'B학점'
        WHEN (SCORE>= '70' AND SCORE < '80') THEN 'C학점' 
        WHEN (SCORE>= '60' AND SCORE < '70') THEN 'D학점'
        ELSE 'F학점'
    END) AS '학점'

FROM MY_TABLE

728x90
728x90

GETDATE()
DB에서 현재 시간을 가져오는 함수

> 형식

SELECT GETDATE()

> SELECT 절 뿐 아니라 WEHRE절 등 현재시간 필요한 곳에서 사용 가능함

SELECT *
FROM TABLE A
WHERE TIME_STAMP < GETDATE()

> YEAR MONTH DAY 따로 출력도 가능함

SELECT 
YEAR(GETDATE()) AS 년도,
MONTH(GETDATE()) AS 월
DAY(GETDATE()) AS 일,
CONVERT(TIME,GETDATE()) AS 시간

 

DATEADD
특정 날짜와 숫자값 계산해주는 함수

>형식

SELECT DATEADD(날짜형식, 값, 날짜)

 

> D, MONT, YEAR
1) SELECT DATEADD(D,5, '2022-01-1') AS '+5일'
 -> SELECT DATEADD(D,5, GETDATE()) AS '+5일'  getdate도 함께 사용가능

2) SELECT DATEADD(MONTH,5, '2022-01-1') AS '+5달'

SELECT DATEADD(YEAR ,5, '2022-01-1') AS '+5년'

 

728x90
728x90

TRIM은 쿼리에서 공백을 제거해주는 함수이다. 데이터베이스에 따라 함수가 다르다고 함

- MySQL: TRIM( ), RTRIM( ), LTRIM( )
- Oracle: RTRIM( ), LTRIM( )
- SQL Server: RTRIM( ), LTRIM( )

 

MS SQL에 적용되는 함수

 

TRIM : 문자열 앞쪽, 뒷 공백을 전부 제거

예제 > TRIM('       ABCDEF          ')

결과 >'ABCDEF'

 

LTRIM : 문자열 앞쪽 공백을 전부 제거

예제 >TRIM('       ABCDEF          ')

결과 >'ABCDEF     '

 

RTRIM : 문자열 뒷쪽 공백을 전부 제거

예제 >TRIM('       ABCDEF          ')

결과 >'     ABCDEF'

 

REPLACE('문자열', '치환할 문자열', '치환될 문자열')

예제 > SELECT REPLACE('ABCDEF','ABC','AAA');
결과 > 'AAADEF'

728x90
728x90

CONVERT 함수
> 데이터형식을 다른 데이터로 변환한다

CONVERT(데이터타입(사이즈), 변경대상, 변경형태)

VARCHAR 로 변환 -- SELECT CONVERT(VARHAR(20), 컬럼) 
INT로 변환 -- CONVERT(INT, 컬럼)
CHAR로 변환 -- CONVERT (CHAR, 컬럼)

예제
--테이블에서 나이 컬럼을 INT 에서 CHAR로 변환
SELECT CONVERT(VARCHAR(20), AGE) AS 나이 FROM TABLE

 

변환형태 정리

Format # 예제 쿼리 샘플 결과
0 SELECT CONVERT(NVARCHAR, GETDATE(), 0) Aug 23 2019 1:39PM
1 SELECT CONVERT(NVARCHAR, GETDATE(), 1) 08/23/19
2 SELECT CONVERT(NVARCHAR, GETDATE(), 2) 19.08.23
3 SELECT CONVERT(NVARCHAR, GETDATE(), 3) 23/08/19
4 SELECT CONVERT(NVARCHAR, GETDATE(), 4) 23.08.19
5 SELECT CONVERT(NVARCHAR, GETDATE(), 5) 23-08-19
6 SELECT CONVERT(NVARCHAR, GETDATE(), 6) 23 Aug 19
7 SELECT CONVERT(NVARCHAR, GETDATE(), 7) Aug 23, 19
8 or 24 or 108 SELECT CONVERT(NVARCHAR, GETDATE(), 8) 13:39:17
9 또는 109 SELECT CONVERT(NVARCHAR, GETDATE(), 9) Aug 23 2019 1:39:17:090PM
10 SELECT CONVERT(NVARCHAR, GETDATE(), 10) 08-23-19
11 SELECT CONVERT(NVARCHAR, GETDATE(), 11) 19/08/23
12 SELECT CONVERT(NVARCHAR, GETDATE(), 12) 190823
13 또는 113 SELECT CONVERT(NVARCHAR, GETDATE(), 13) 23 Aug 2019 13:39:17:090
14 or 114 SELECT CONVERT(NVARCHAR, GETDATE(), 14) 13:39:17:090
20 또는 120 SELECT CONVERT(NVARCHAR, GETDATE(), 20) 2019-08-23 13:39:17
21 or 25 or 121 SELECT CONVERT(NVARCHAR, GETDATE(), 21) 2019-08-23 13:39:17.090
22 SELECT CONVERT(NVARCHAR, GETDATE(), 22) 08/23/19 1:39:17 PM
23 SELECT CONVERT(NVARCHAR, GETDATE(), 23) 2019-08-23
101 SELECT CONVERT(NVARCHAR, GETDATE(), 101) 08/23/2019
102 SELECT CONVERT(NVARCHAR, GETDATE(), 102) 2019.08.23
103 SELECT CONVERT(NVARCHAR, GETDATE(), 103) 23/08/2019
104 SELECT CONVERT(NVARCHAR, GETDATE(), 104) 23.08.2019
105 SELECT CONVERT(NVARCHAR, GETDATE(), 105) 23-08-2019
106 SELECT CONVERT(NVARCHAR, GETDATE(), 106) 23 Aug 2019
107 SELECT CONVERT(NVARCHAR, GETDATE(), 107) Aug 23, 2019
110 SELECT CONVERT(NVARCHAR, GETDATE(), 110) 08-23-2019
111 SELECT CONVERT(NVARCHAR, GETDATE(), 111) 2019/08/23
112 SELECT CONVERT(NVARCHAR, GETDATE(), 112) 20190823
113 SELECT CONVERT(NVARCHAR, GETDATE(), 113) 23 Aug 2019 13:39:17.090
120 SELECT CONVERT(NVARCHAR, GETDATE(), 120) 2019-08-23 13:39:17
121 SELECT CONVERT(NVARCHAR, GETDATE(), 121) 2019-08-23 13:39:17.090
126 SELECT CONVERT(NVARCHAR, GETDATE(), 126) 2019-08-23T13:39:17.090
127 SELECT CONVERT(NVARCHAR, GETDATE(), 127) 2019-08-23T13:39:17.090
130 SELECT CONVERT(NVARCHAR, GETDATE(), 130) 22 ذو الحجة 1440 1:39:17.090P
131 SELECT CONVERT(NVARCHAR, GETDATE(), 131) 22/12/1440 1:39:17.090PM

출처 : https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15

728x90
728x90

DECLARE 변수 선언

>형식
DECLARE @변수명 데이터형식;
변수 범위는 선언 시점부터 저장 프로시저가 끝날 때까지 계속됨

>변수 값 설정은 SET 문을 사용
DECLARE @ID VARCHAR(20);

SET @ID = 'IDIDID';

>선언과 동시에 변수 값 대입 가능
DECLARE @ID VARCHAR(20) = 'IDIDID';

>테이블 형식으로 선언 가능
DECLARE @USER AS TABLE

ID VARCHAR(20)
NAME VARCHAR(20)
)

728x90

+ Recent posts