Reputation: 37
I want to compare date data and then assign a new name, here is my query
SELECT EMPLOYEE_ID,FIRST_NAME,HIRE_DATE
CASE
WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR'
WHEN HIRE_DATE BETWEEN DATE('1987-05-01') AND DATE('1987-08-31') THEN 'MID LEVEL SENIOR'
WHEN HIRE_DATE > DATE('1987-05-01') THEN 'SENIOR'
END AS 'experience_level'
FROM employees;
there is some error that occurred. what is my problem?
SQL query: Documentation
SELECT EMPLOYEE_ID,FIRST_NAME,HIRE_DATE
CASE
WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR'
WHEN HIRE_DATE BETWEEN DATE('1987-05-01') AND DATE('1987-08-31') THEN 'MID LEVEL SENIOR'
WHEN HIRE_DATE > DATE('1987-05-01') THEN 'SENIOR'
END AS 'experience_level'
FROM employees LIMIT 0, 25
MySQL said: Documentation
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR' WHEN HIRE_DATE BETWEEN D' at line 2
Upvotes: 0
Views: 643
Reputation: 682
You're missing "," after "HIRE_DATE". i.e. your query should be like:
SELECT EMPLOYEE_ID,FIRST_NAME,HIRE_DATE,
CASE
WHEN HIRE_DATE < DATE('1987-09-01')THEN 'JUNIOR'
WHEN HIRE_DATE BETWEEN DATE('1987-05-01') AND DATE('1987-08-31') THEN 'MID LEVEL SENIOR'
WHEN HIRE_DATE > DATE('1987-05-01') THEN 'SENIOR'
END AS 'experience_level'
FROM employees;
Upvotes: 1