db2—避免sql查询中出现多个“或”

14ifxucb  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(322)

下面的sql查询添加了一个约束 MindestensEinKontakt_CHECK 到table上去 KundenKontaktDaten . constraint确保至少有一个属性 Twitter_Id , Google_Id , Facebook_Id , Skype_Id ,和 Telefonnummer 不为空:

ALTER TABLE KundenKontaktDaten 
    ADD CONSTRAINT MindestensEinKontakt_CHECK 
        CHECK (Twitter_Id IS NOT NULL OR Google_Id IS NOT NULL OR 
               Facebook_Id IS NOT NULL OR Skype_Id IS NOT NULL OR 
               Telefonnummer IS NOT NULL);

我希望避免使用多个“or”,并以更紧凑的方式编写查询。有人知道怎么做吗?

wmvff8tz

wmvff8tz1#

coalesce 返回第一个非- null 争论,或 null 如果他们都是 null s。你可以在你的生活中利用它 alter table 声明:

ALTER TABLE KundenKontaktDaten
ADD CONSTRAINT MindestensEinKontakt_CHECK 
CHECK (COALESCE(Twitter_Id, Google_Id, Facebook_Id, Skype_Id, Telefonnummer) IS NOT NULL);

相关问题