check_sal check( case when sex='2'
                            then case when sal>1000
                            then 1 else 0 end    
                            else 1 end =1)
case when sal>1000 then 1 else 0 end 看上去还能理解,sal>1000判断要么为1,要么为0 ,但是后面 else 1 end =1 是什么意思啊??????

解决方案 »

  1.   

    (case when sex='2'
      then (case when sal>1000
      then 1 else 0 end)  
      else 1 end) =1這樣看,可以理解了吧?
      

  2.   

    你的和這個等價的check_sal check(sex<>'2' or (sex='2' and sal>1000))
      

  3.   

    后面那个 =1 难道是 check 这个值一定要为真
      

  4.   

    check約束,返回值有兩個,1個是true,一個是false
    如果是true,即1=1則你的數據合法
    如果是false,即0=1,則你的數據非法只有check這個值為真的時候你的數據才是合法的