Loading...
2024. 10. 26. 20:29

where절에 분명히 있는 column명을 썼는데 없다고 에러가 나는 이유(unknown column)

select name,email,substr(email,1,instr(email,'@')-1) as email_name from person;   위와 같은 테이블에서 email_name에 대해 where절로 원하는 데이터만 뽑을려고 했는데 select name,email,substr(email,1,instr(email,'@')-1) as email_name from personwhere email_name regexp '^[A-Za-z]+$';    이렇게 unknown column 에러가 남 chatgpt 피셜로 select 절에서 사용된 별칭은 where절에서 바로 사용 불가능이라함   이렇게 서브쿼리로 쓰거나 select * from (select name,email,substr(email,1,i..

2024. 10. 25. 20:21

문자열이 특정한 조건을 만족하는 형태로 이루어져있는지 체크하는 방법(정규표현식)

use igoat;CREATE TABLE person ( name VARCHAR(50), email VARCHAR(100));INSERT INTO person (name, email) VALUES('JohnDoe', 'John_Doe123!@example.com'),('Alice456', 'Alice@DoMaincool.com'),('EmmaJones', 'EmmaJones@xyztestsite.org'),('BobSmith', 'BobSmith@Examplexyz.com'),('Charlie9', 'Charl!e9@Tech4life.io'),('Sara2024', 'Sra2024@coool-domain.org'),('Mike007', 'MiKe007@example999.com');select..

2024. 10. 23. 22:52

특정 문자 기준으로 문자열을 자르는 SUBSTRING_INDEX()

특정 문자를 기준으로 주어진 문자열을 split하고 싶은 경우가 있다. use igoat;CREATE TABLE person ( name VARCHAR(50), email VARCHAR(100));INSERT INTO person (name, email) VALUES('JohnDoe', 'John_Doe123!@example.com'),('Alice456', 'Alice@DoMaincool.com'),('EmmaJones', 'EmmaJones@xyztestsite.org'),('BobSmith', 'BobSmith@Examplexyz.com'),('Charlie9', 'Charl!e9@Tech4life.io'),('Sara2024', 'Sra2024@coool-domain.org'),('Mi..

2024. 10. 22. 22:37

INSTR(), LOCATE()를 이용하여 원하는 문자의 위치를 찾기

sql에서 특정 문자열에서 특정 위치까지 자르고 싶은데, 특정 위치를 알고싶을 때가 있다 use igoat;CREATE TABLE person ( name VARCHAR(50), email VARCHAR(100));INSERT INTO person (name, email) VALUES('JohnDoe', 'John_Doe123!@example.com'),('Alice456', 'Alice@DoMaincool.com'),('EmmaJones', 'EmmaJones@xyztestsite.org'),('BobSmith', 'BobSmith@Examplexyz.com'),('Charlie9', 'Charl!e9@Tech4life.io'),('Sara2024', 'Sra2024@coool-domain...

2024. 10. 22. 20:53

이전 행을 가져오는 lag()와 이후 행을 가져오는 lead()

어떤 속성에 대해 특정 값의 이전 행과 이후 행을 구해야하는 경우가 있다 다음과 같이 테이블을 먼저 만들어보고 use igoat;create table bill (month DATE,amount INT);INSERT INTO bill (month, amount) VALUES('2024-01-01', 50000),('2024-02-01', 52000),('2024-03-01', 48000),('2024-04-01', 50500),('2024-05-01', 53000),('2024-06-01', 51000),('2024-07-01', 52500);SELECT * FROM bill;     각 월마다 이전 월의 금액, 이후 월의 금액을 알아 비교해보고 싶을 때가 있다 lag(속성) over (order by ..

2024. 4. 27. 00:02

SQL 코딩테스트 복기 - JSON array에 들어있는 원소의 개수(JSON_LENGTH)

create table test (id INTEGER,A JSON);INSERT INTO test (id, A) VALUES (1, JSON_ARRAY('abc','def','aa','ded')),(2, JSON_ARRAY('dawd','qw','gqweq','asdqwweqw','fdsdqwe')),(3, JSON_ARRAY('nnwqsq','sdq'))  다음과 같은 테이블이 있다고 하자. 각 id별로 A 컬럼에 들어있는 배열의 원소의 개수를 구하고 싶다.    id 1번은 4개, id 2번은 5개, id 3번은 2개이다. 어떻게 가능할까? python처럼 배열을 순회할 수도 없고.. JSON_LENGTH라는 함수로 가능하다... 이걸 모르면 풀수가 없잖아 ㅡㅡ select id, A, JSON_LE..