programmers SQL : String, Date
루시와 엘라 찾기
동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.
IN
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY 1 ASC;
CONCAT
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE 'Lucy, Ella, Pickle, Rogan, Sabrina, Mitty' LIKE CONCAT('%', NAME, '%')
ORDER BY ANIMAL_ID;
컬럼에 특정 문자열이 있는지 검색할 때
컬럼명 LIKE CONCAT('%', '검색할 문자열', '%')
이름에 el이 들어가는 동물 찾기
보호소에 돌아가신 할머니가 기르던 개를 찾는 사람이 찾아왔습니다.
이 사람이 말하길 할머니가 기르던 개는 이름에 'el' 이 들어간다고 합니다.
동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요.
이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다.
LIKE
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%el%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME ;
REGEXP_LIKE
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE REGEXP_LIKE(NAME, 'el', 'i') AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME ;
UPPER
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
AND UPPER(NAME) LIKE UPPER('%el%')
ORDER BY NAME
DATETIME에서 DATE로 형 변환
ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜(시각(시-분-초)을 제외한 날짜(년-월-일)만)를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다.
DATE_FORMAT
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d')
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
(DATETIME, '%Y-%M-%D') # 대문자
SUBSTRING
SELECT
ANIMAL_ID,
NAME,
SUBSTRING(DATETIME,1,10)
FROM ANIMAL_INS
ORDER BY 1;
LEFT
SELECT ANIMAL_ID, NAME, LEFT(DATETIME, 10)
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
중성화 여부 파악하기
보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다.
동물의 아이디와 이름, 중성화 여부 를 아이디 순 으로 조회하는 SQL문을 작성해주세요.
이때 중성화가 되어있다면 'O', 아니라면 'X' 라고 표시해주세요.
CASE
SELECT ANIMAL_ID, NAME,
CASE WHEN SEX_UPON_INTAKE NOT LIKE 'Intact%' THEN 'O'
ELSE 'X'
END '중성화'
FROM ANIMAL_INS;
IF
SELECT ANIMAL_Id,NAME,IF(SEX_UPON_INTAKE IN('Neutered Male','Spayed Male','Neutered Female','Spayed Female'),'O','X') 중성화
FROM ANIMAL_INS
INSTR
SELECT
ANIMAL_ID, NAME, IF(INSTR(SEX_UPON_INTAKE, 'Intact') > 0, 'X', 'O') AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
REGEXP
SELECT ANIMAL_ID,
NAME,
IF(SEX_UPON_INTAKE REGEXP 'Neutered|Spayed', 'O' , 'X') AS 중성화
FROM ANIMAL_INS
REGEXP_REPLACE
SELECT
ANIMAL_ID,
NAME,
REGEXP_REPLACE
(REGEXP_REPLACE
(SEX_UPON_INTAKE,
'Neutered Male|Spayed Female',
'O'
),
'Intact Male|Intact Female',
'X'
) AS 중성화
FROM
ANIMAL_INS
ORDER BY
ANIMAL_ID ASC;
오랜 기간 보호한 동물(2)
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
ORDER BY
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS I JOIN ANIMAL_OUTS O
USING(ANIMAL_ID)
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2;
- ORDER BY O.DATETIME - I.DATETIME DESC
- ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC
JOIN
SELECT AO.ANIMAL_ID, AO.NAME
FROM ANIMAL_OUTS AS AO
INNER JOIN ANIMAL_INS AS AI
ON AO.ANIMAL_ID = AI.ANIMAL_ID
ORDER BY AO.DATETIME - AI.DATETIME DESC
LIMIT 2;
SUBQUERY
SELECT C.ANIMAL_ID, C.NAME
FROM (SELECT O.ANIMAL_ID, O.NAME, DATEDIFF(O.DATETIME, I.DATETIME) AS DURATION
FROM ANIMAL_INS I INNER JOIN ANIMAL_OUTS O USING(ANIMAL_ID)
ORDER BY DURATION DESC
LIMIT 2) C
Author And Source
이 문제에 관하여(programmers SQL : String, Date), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sooyeon/programmers-SQL-String-Date저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)