SQL:有没有更好的方法来检查值列表是否在字段列表中



我想看看值"PS_BA"或"PS_BS"是否在字段列表中:

以下是我如何用一堆OR语句来完成它的。

有没有更好/更有效的方法来做到这一点(尤其是当列表更长时(?

SELECT * 
FROM TABLE
WHERE
(  ACAD_PLAN_CD   in ('PS_BS','PS_BA')
OR ACAD_PLAN_CD_2 in ('PS_BS','PS_BA')
OR ACAD_PLAN_CD_3 in ('PS_BS','PS_BA')
OR ACAD_PLAN_CD_4 in ('PS_BS','PS_BA')
OR ACAD_PLAN_CD_5 in ('PS_BS','PS_BA'))

您可以将查询重新表述为:

SELECT *
FROM yourTable
WHERE 'PS_BS' IN (ACAD_PLAN_CD, ACAD_PLAN_CD_2, ACAD_PLAN_CD_3,
ACAD_PLAN_CD_4, ACAD_PLAN_CD_5) OR
'PS_BA' IN (ACAD_PLAN_CD, ACAD_PLAN_CD_2, ACAD_PLAN_CD_3,
ACAD_PLAN_CD_4, ACAD_PLAN_CD_5);

最新更新