[SQLハイスコアキット]String,Date


ルーシーとエラを探して


動物保護所の動物では、Lucy、Ella、Pickle、Rogan、Sabrina、Mittyという名前の動物のIDと名前、性別、中性化の有無を問い合わせるSQL文を記入してください.
この場合、結果はID順に照会してください.
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME in ('Lucy','Ella','Pickle', 'Rogan', 'Sabrina', 'Mitty') -- 이름 조건문 추가
ORDER BY 1; -- 아이디 순 조회

名前の中のelの動物を探します


庇護所で亡くなったおばあちゃんが飼っている犬を探しに来た人がいます.この人はおばあちゃんが飼っている犬の名前に「el」があると言った.動物保護所の動物名に入り、クエリ名に「EL」の犬のIDと名前を含むSQL文を記入してください.この場合は名前順に結果を調べてください.ただし、名前は大文字と小文字を区別しません.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME like '%el%' && ANIMAL_TYPE like 'Dog' -- 이름에 'el'포함(대소문자 상관X), 개 조건 추가
ORDER BY 2; -- 이름 순 조회
最初はWHERE節にANIMAL TYPE like「Dog」条件が付けられていたので間違っていました.
おばあちゃんが飼っている犬.隠しすぎた条件😭 これからはちゃんと問題を読みます!!

ニュートラル化するかどうかを決定


保護所の動物が中性化したかどうか知りたいです.中性化した動物はSEX UPON INTAKE色に「Neuted」または「Spayed」を含む.動物のID、名前、中性化の有無をID順に問い合わせるSQL文を書いてください.中性化なら「O」でなければ「X」
SELECT ANIMAL_ID, NAME,
    CASE 
        WHEN SEX_UPON_INTAKE LIKE "%Neutered%" OR SEX_UPON_INTAKE LIKE "%Spayed%" THEN "O"
        ELSE 'X' 
    END "중성화" -- 중성화 여부 별 다르게 출력하는 CASE문 추가, 필드이름은 '중성화'
FROM ANIMAL_INS
ORDER BY 1; -- 아이디 순 조회

長期保護動物(2)


養子縁組した動物の中で、保護期間が最も長い2つの動物のIDと名前を照会するSQL文を記入してください.結果は保護期間が長い順に表示されます.
ANIMAL OUTSテーブルのANIMAL IDは、ANIMAL INSにおけるANIMAL IDの外部キーである.
SELECT i.ANIMAL_ID, i.NAME
FROM ANIMAL_INS i join ANIMAL_OUTS o ON i.ANIMAL_ID = o.ANIMAL_ID
ORDER BY DATEDIFF(o.DATETIME,i.DATETIME) DESC -- 두 날짜의 갭, 내림차순으로
LIMIT 2; -- 가장 긴 기간 TOP2
LIMIT 2に対して注釈処理を行ったところ、-30人の値があったのですが、保護期間がどうして-30になるのか気になり、保護所に入った日付と保護所を出た日付もプリントアウトして、本当にそうでした.ハハハ🤣
(+JOIN文を除いて、この章を解いてから、間違ったデータが入力されたことを知りました)😓)

DATETIMEからDATEへの変換


ANIMAL INSテーブルのすべてのレコードについて、各動物のIDと名前、および日付(年-月-日)を入力するSQL文を入力します.この場合、結果はID順に問い合わせる必要があります.
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜 -- 형 변환, 필드 이름은 '날짜'
FROM ANIMAL_INS
ORDER BY 1; -- 아이디 순 조회
DATE FORMAT(DATETIME,'%Y-%m-%d'):DATETIME(年-月-日:分:秒)を(年-月-日)形式に変換