以下查询获取所有行,但即使特定记录的一列为空,它也将获取除该记录之外的所有记录。 我想要一个查询来获取所有值,而不管它是否在列中具有空值。
SELECT *
FROM
STUDENT S,COURSE C
WHERE S.STD_ID like '%'||null||'%'
and S.STD_NAME like '%'||null ||'%'
and S.STD_START_DATE like '%'||null ||'%'
and S.STD_END_DATE like '%'||null ||'%'
and S.STD_GENDER like '%'||null||'%'
and S.COURSE_ID like '%'||null||'%'
and S.COURSE_ID=C.COURSE_ID
答案 0 :(得分:1)
我认为你应该改变where条件:
SELECT *
FROM
STUDENT S,COURSE C
WHERE
S.COURSE_ID=C.COURSE_ID
此选择将获取除COURSE_ID之外的ani列中具有null或非null值的所有记录。
好的,你应该使用它:
SELECT *
FROM
STUDENT S,COURSE C
WHERE (S.STD_ID like '%'||user_input||'%' or S.STD_ID is null)
and (S.STD_NAME like '%'||user_input ||'%' or S.STD_NAME is null)
and (S.STD_START_DATE like '%'||user_input||'%' or S.STD_START_DATE is null)
and (S.STD_END_DATE like '%'||user_input||'%' or S.STD_END_DATE is null)
and (S.STD_GENDER like '%'||user_input||'%' or S.STD_GENDER is null)
and (S.COURSE_ID like '%'||user_input||'%' or S.COURSE_ID is null)
and S.COURSE_ID=C.COURSE_ID
答案 1 :(得分:0)
SELECT *
FROM
STUDENT S
FULL OUTER JOIN COURSE C
ON S.COURSE_ID = C.COURSE_ID
此select选取任何列中包含null或非null值的所有记录。