在資料庫中把Image格式的欄位Union起來

Union 這個運算式可以把多個 Select 指令出來的東西合成1張表

Select * From Table1
Union
Select * From Table2

這樣子就可以Table1與Table2中不重覆的資料合成一張表

如果連重覆的資料也要一起來的話就使用Union All

Select * From Table1
Union All
Select * From Table2

這樣子Table1與Table2中如果有重覆的資料也會一起出現

問題來了,如果我要把資料表中內含有 Image 格式欄位 Union 起來呢?

如果你直接下 Union 得話,就會得到下面的錯誤

訊息 421,層級 16,狀態 1,行 1
不能選取 image 資料類型作為 DISTINCT,因為無法比較。

用 Union All 的話又會得到重覆的資料

解決方法就是使用Union All,但是在Union All 前把重覆的資料篩就行了


Select * From Table1
Where KeyId Not In (Select KeyId From Table2)
Union All
Select * From Table2
Where KeyId Not In (Select KeyId From Table1)

這樣子就可以得到一個沒有重覆資料且有含 Image 格式欄位的資料表了

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *