假设我的表包含以下列
Roll_number numeric not null
Subject1 varchar(40) null
Subject2 varchar(40) null
. . .
Subject8 varchar(40) null
Run Code Online (Sandbox Code Playgroud)
我必须使用SQL Query搜索所有这些subject1到8中的主题.在所有这些列中搜索子字符串的最佳查询是什么,请记住其中任何一个都可以具有NULL值.
我写
select *
from students_data
where subject1="BIOLOGY" or subject2="BIOLOGY" . . . . or subject8="BIOLOGY"
Run Code Online (Sandbox Code Playgroud)
但我需要一个简单的查询,因为实际上我的表中有超过20列
查询
select * from table1 where "BIOLOGY" in (subject1,subject2,subject3)
Run Code Online (Sandbox Code Playgroud)
很有帮助,但如果我必须匹配该表字段中的
"BIO"之类的子字符串(该主题的一部分)
您可以IN像这样使用谓词:
SELECT *
FROM students_data
WHERE 'BIOLOGY' IN (subject1, subject2, . . . , subject8);
Run Code Online (Sandbox Code Playgroud)