반응형
Mysql SELECT CASE when something and return 필드
나는 nmu와 nmi 두개의 필드를 가지고 있습니다.
if nnmu is equal to 1, I need to return naziv_mesta from **mesto_istovara**,
else if it's =0 I need to return naziv_mesta from mesto_utovara table
그리고 역으로,
if nnmi is equal to 1, then I need to return naziv_mesta from **mesto_utovara,**
else if it's =0 need to return naziv_mesta from mesto_istovara.
처음에는 모든 것이 좋아 보이지만 어떻게든 값을 섞습니다. nnmi와 nnmu가 모두 0일 때 작동하지만 둘 중 하나의 값이 1일 때는 넌센스를 반환합니다.도와줄 사람?
select u.id_utovar,
u.datum_isporuke,
u.broj_otpremnice,
r.naziv_robe,
CASE u.nnmu
WHEN u.nnmu ='0' THEN mu.naziv_mesta
WHEN u.nnmu ='1' THEN m.naziv_mesta
ELSE 'GRESKA'
END as mesto_utovara,
CASE u.nnmi
WHEN u.nnmi = '0' THEN m.naziv_mesta
WHEN u.nnmi = '1' THEN mu.naziv_mesta
ELSE 'GRESKA'
END as mesto_istovara,
m.adresa,
m.kontakt_osoba,
m.br_telefona,
u.broj_paleta,
u.bruto,
k.username,
u.napomena,
v.registracija,
p.naziv_prevoznika,
u.cena,
u.korisnik_logistika,
u.korisnik_analitika,
u.datum_unosa,
u.vreme_unosa,
u.zakljucan,
u.id_mesto_utovara,
u.id_mesto_istovara,
u.nnmu,
u.nnmi
FROM utovar u ,mesto_utovara mu, mesto_istovara m, roba r, vozila v,prevoznik p, korisnik k
WHERE u.id_mesto_istovara=m.id_mesto_istovara
and k.id_korisnik = u.korisnik
and r.id_robe=u.id_robe
and u.id_mesto_utovara = mu.id_mesto_utovara
and v.id_vozilo = u.id_vozilo
and p.id_prevoznik = u.id_prevoznik
ORDER by u.id_utovar DESC
당신은 두개의 다른 것을 섞고 있습니다. CASE
구문이 부적절합니다.
이 스타일 사용(검색)
CASE
WHEN u.nnmu ='0' THEN mu.naziv_mesta
WHEN u.nnmu ='1' THEN m.naziv_mesta
ELSE 'GRESKA'
END as mesto_utovara,
또는 이 스타일(심플)
CASE u.nnmu
WHEN '0' THEN mu.naziv_mesta
WHEN '1' THEN m.naziv_mesta
ELSE 'GRESKA'
END as mesto_utovara,
없음(단순하지만 부울 검색 술어 사용)
CASE u.nnmu
WHEN u.nnmu ='0' THEN mu.naziv_mesta
WHEN u.nnmu ='1' THEN m.naziv_mesta
ELSE 'GRESKA'
END as mesto_utovara,
MySQL에서는 다음을 테스트합니다.u.nnmu
부울 식의 값과 같습니다.u.nnmu ='0'
그 자체.여부와 관계없이u.nnmu
가1
아니면0
그 경우의 표현 자체의 결과적으로1
예를 들어 만약nmu = '0'
그때()nnmu ='0'
)로 평가합니다.true
(1) 그리고 ()nnmu ='1'
)로 평가합니다.false
(0). 이들을 사례에 대입하면 다음과 같은 결과를 얻을 수 있습니다.
SELECT CASE '0'
WHEN 1 THEN '0'
WHEN 0 THEN '1'
ELSE 'GRESKA'
END as mesto_utovara
한다면nmu = '1'
그때()nnmu ='0'
)로 평가합니다.false
(0) 그리고 ()nnmu ='1'
)로 평가합니다.true
(1). 이들을 사례에 대입하면 다음과 같은 결과를 얻을 수 있습니다.
SELECT CASE '1'
WHEN 0 THEN '0'
WHEN 1 THEN '1'
ELSE 'GRESKA'
END as mesto_utovara
언급URL : https://stackoverflow.com/questions/4356318/mysql-select-case-when-something-then-return-field
반응형
'programing' 카테고리의 다른 글
MariaDB Database [JAVA]에 연결할 수 없습니다. (0) | 2023.10.28 |
---|---|
NetBeans의 JSTestDriver가 어설션 실패 후 테스트를 중지함 (0) | 2023.10.28 |
TypeScript - setInterval로 설정된 유형 (0) | 2023.10.28 |
슬래시를 닫기 전의 공간? (0) | 2023.10.28 |
특정 속성을 가진 모든 요소를 선택하는 방법?TinyXPath로 (0) | 2023.10.28 |