을 만드는 방법의 단 MSSQL 선택에서 쿼리를 이 경우:
- 우리는 2 개의 테이블:과일과 만기
- 목표 테이블을 받는 특정한 과일 수 있에 대한 정보를 데 NULL expirationDate 열입니다. 그 열매는 숫자가 있지 않 NULL 것 제로에서는 열이 있습니다. 숫자 4 에 존재하지 않는 만료 테이블,그래서 그것은 또한이 있 0 에서 결과,이 없기 때문에 NULL 입니다.
을 만드는 방법의 단 MSSQL 선택에서 쿼리를 이 경우:
할 수 없습니다 쉽게 얻을 만료 날짜에 당신이 원하는 형식. 그러나 정말 중요하지 않습(?). 나는 가정을 원하는 1 또는 0 에 새로운 표기 때문에 사용할 경우 문 확인하려면 열매가 나쁘지 않다. 를 해결할 수 있습이 쉽게:
if(expirationDate == null){/*something*/}
또는,당신이 할 수 있 do
if(expirationDate) //this is all fruit that is not bad
else{/*your code to deal with expirated fruit here*/}
참고:모르겠어 어떤 프로그래밍 언어를 사용하고 있습니다. 그러나 그들의 대부분:null0 은 거짓입니다.
if(null) // false
if(0) //false
if(undefined) //false, in javascript
//everything that is not a false value, is true.
if("oiaehgtaoiwgneawg") //true
if(-1) //true
에 응답하기 SQL 쿼리 질문:
당신은 이미 당신은 당신이해야 할 모든이에 만료 테이블
SELECT fruit_number, expiration_date
FROM expiration;
이 도움이 되었으면 좋겠습니다
당신은 그것을 사용하는 Case
상태입니다. 그러나를 변경해야한 문은 조금:
select fruit_number, --distinct(fruit_number),
x =case expiration_date
when NULL then null
else 0
end
내 친구는 해결책을 발견했다.
SELECT
fruit_number,
MAX(expirationDate) as expirationDate
FROM
(SELECT
f.fruit_number,
CASE
WHEN e.expiration_date is NULL AND e.fruit_number IS NOT NULL THEN 1
ELSE 0
END AS expirationDate
FROM
expiration as e
FULL OUTER JOIN fruits as f ON f.fruit_number = e.fruit_number
WHERE
f.fruit_number IS NOT NULL
) t
GROUP BY
fruit_number
ORDER BY
fruit_number