programing

GROUP_CONCAT를 사용하여 짝수와 홀수를 분할하는 쿼리

luckcodes 2022. 9. 19. 22:08

GROUP_CONCAT를 사용하여 짝수와 홀수를 분할하는 쿼리

특정 우편번호에 4개의 번호가 있는 거리별 주거지를 찾는 질문이 있습니다.

SELECT *,
    GROUP_CONCAT(DISTINCT CAST(housenumber AS int) ORDER BY housenumber ASC) AS housenumbers
FROM streets
WHERE postcode LIKE '3031%'
GROUP BY street
ORDER BY lat,lon

이것은 집단고양이의 결과입니다.

491,492,493,500,501,502,503,504,505,506,507,508,50

결과를 짝수값과 홀수값으로 두 열로 나누고 싶습니다.나는 노력했다.MOD그리고.%2단, 둘 다WHERE또, 이 명령어를 사용할 수 없습니다.WHERE'그룹캣'이라는 기능에서요.

결과를 짝수와 홀수로 나누려면 어떻게 해야 하나요?

사용할 수 있습니다.CASE식:

SELECT street
 ,GROUP_CONCAT(DISTINCT CASE WHEN MOD(CAST(housenumber AS int),2) = 0 THEN CAST(housenumber AS int) END ORDER BY housenumber ASC) AS housenumbers_even
 ,GROUP_CONCAT(DISTINCT CASE WHEN MOD(CAST(housenumber AS int),2) = 1 THEN CAST(housenumber AS int) END ORDER BY housenumber ASC) AS housenumbers_odd
FROM streets
WHERE postcode LIKE '3031%'
GROUP BY street
ORDER BY lat,lon;

스킵하기 때문에 동작합니다.NULL가치.


또한.SELECT * ... GROUP BY street안전하지 않아요관련: mySQLpostgre의 Group bySQL, 왜 postgreSQL에서 오류가 발생합니까?

언급URL : https://stackoverflow.com/questions/59490951/query-to-split-even-and-odd-numbers-with-group-concat