sql兩個欄位唯一
發布時間: 2022-12-07 22:40:35
Ⅰ sql 欄位唯一的約束方法 50分
把這兩個欄位建成主鍵
Ⅱ sql語法如何查兩列中都是唯一的語句
有一個問題啊,如果存在兩個都是入,那麼算不算唯一,比如E0122,如果還有一個時間是20190102 入,那麼E0122還算不算唯一。這樣滿足號碼唯一,不太滿足入唯一,不過要看你的具體需求,所以我不寫這種情況了,只寫號碼和入只出現過一次的。
這個個人覺得寫法有好多種
(1)利用你的寫法
select * from BK_SQLE where 號碼||'(1' in (SELECT 號碼 ||'('||COUNT(1) FROM BK_SQLE GROUP BY 號碼 ) and 出入='入'
其實何以嵌套三層,不過兩層就可以,所以我就沒寫三層。另外||是oracle的連接符號,作用是a||b顯示出來是ab,所以如果是其他資料庫應該也有類似的函數,你看著用。『(』是為了區分後面的1和前面號碼的,只要用一個符號或字母區分就可以,不一定非要(符號。
(2)如果一個號碼可能有兩個入,那麼下面這種方式要改動一下才能用
select * from BK_SQLE where 號碼 not in (select 號碼 from BK_SQLE where 出入='出')
其他方法還有,比如開窗函數也可以做(這種寫起來可能比較麻煩,而且還需要試驗),還有一種方式始終沒怎麼想明白,似乎可以又似乎不可以,自己都有點混醬醬的,這種就不寫了。
熱點內容