多個欄位同時去重
首先建立一個表結構,其中資料如下:
根據上面的name、age、sex三個欄位進行去重;
去重思想:
說到去重,大家想到的肯定是distinct這個關鍵字,但這個關鍵字他只能對一個欄位進行去重,那麼如何同時根據這三個欄位去重呢?辦法就是把這三個欄位拼接成一個欄位進行去重,因為這三個欄位拼接成一個欄位了,那麼我們就可以繼續使用distinct關鍵字進行去重了。
Oracle中的SQL:
select distinct name||age||sex a name,age,sex from t_user
MySQL中的SQL
SQL Server中的SQLselect distinct name,age,sex a name,age,sex from t_user
select distinct name+age+sex a name,age,sex from t_user
需要注意的是,這三個拼接的欄位必須是相同的型別;還有就是如果你在select中使用了這三個欄位以外的欄位,那麼去重的效果就沒有了
相關推薦
多個欄位同時去重
首先建立一個表結構,其中資料如下: 根據上面的name、age、sex三個欄位進行去重; 去重思想: 說到去重,大家想到的肯定是distinct這個關鍵字,但這個關鍵字他只能對一個欄位進行去重,那麼
sql---distinct顯示多個欄位,去重複
眾所周知,distinct可以列出不重複的記錄,對於單個欄位來說distinct使用比較簡單,但是對於多個欄位來說,distinct使用起來會使人發狂。而且貌似也沒有見到微軟對distinct使用多欄位的任何說明。下面就提供了一種方法可以在使用distinct的時候同時使
Oracle語句中多個欄位同時in
今天遇到一個數據庫問題,A,B,C三表。 需要從A表中查詢部分資料 select a.a1, a.a2 from A where ... 從B中刪除對應的資料,即刪除 select b.* from B b, (select a.a1, a.a2 from A where
使用mogondb指令碼去重多個欄位
(1)命令 (先建立一個新表,新增好需要去重的欄位並且值設定成唯一的,再重新匯入資料,利用mogondb資料庫的非關係型即可解決了) /*伺服器後臺執行 1)先備份資料;A_BAS_TEST 為例;批量指令碼*/ mongoexport --db mapEditor -u ad
多個欄位去重後進行求和-SQL
【問題】怎樣對多個欄位進行分別去重後再對其求和; 【解法】 相當於把多個欄位的字串連線起來: select count(DISTINCT fcode+cast(fread_date as varchar(30))) from my_table http:
T-SQL對多個欄位去重並計數
定義和用法可以一同使用 DISTINCT 和 COUNT 關鍵詞,來計算非重複結果的數目。語法SELECT COUNT(DISTINCT column(s)) FROM table例子注意:下面的例子僅
怎樣對多個欄位去重並計數?
Distinct可以和Count 一起使用,去重並計數: COUNT({ DISTINCT expression}) 但是一起使用時,後面不能有多個欄位: //不允許的寫法:select count(distinct col1 , col2 , col3 ,......
SQL語句distinct的多個欄位去重問題
經典例子 select distinct name, id from table 或者 select name,id from table group by name 像這樣是錯誤的寫法,distinct不起作用的 曲線救國寫法: select name,id f
java8特性--list集合根據多個欄位去重
專案需求描述 出於專案需要,有一個list,實體包含多個欄位,當其中兩個欄位相同均相同時,就認為list中的兩條記錄是一樣的,本來想通過分組實現,java8的分組只提供根據一個欄位分組,只好另尋他路,
Oracle如何實現多個欄位去重
我們通常使用distinct關鍵字來去除重複記錄,還有沒有其他辦法呢?通過查詢資料,確認group by也可以,利用rowid也可以實現功能。其中,group by是用來分組統計的,能用distinct的地方就不要用group by。下面我們看一下幾種方法具體如何實現,至於
mysql多欄位查詢去重
當資料表有主鍵時,使用group by 獲取相同欄位的最大主鍵即可,code如下: SELECT rn.* FROM table_name rn WHERE rn.id IN ( SELECT MAX(r.id) from table r GROUP BY a,b,c,d )
對於傳一個引數去資料庫裡匹配多個欄位的資料查詢
舉個例子: <if test="customName != null and customName != ''"> and t.customName like '%'+#{customName}+'%' or t.customType = #{customName}
oracle的多欄位排序去重Row Number Over Partition By A B Order By C
今天遇到需要在多條有重複欄位的記錄中選取修改日期最接近現在的欄位,如下:我想要選取CPDM,FBQD相同,KSRQ離現在最近的那條記錄,選出的記錄應該為1、2、3,而4、5、6、7應該捨棄掉。我們使用這條語句:Row_Number() Over(Partition By Cpd
sql 按一個欄位剔重,查詢多個欄位
表結構:id唯一,age列有重複的,按age去重,查詢所有欄位 SELECT [id] ,[name] ,[age] FROM [YIBAI].[dbo].[test] GO 按age去重查詢多個欄位: select * from [test]
如何用distinct消除重複記錄的同時又能選取多個欄位值?
需求是:我要消除name欄位值重複的記錄,同時又要得到id欄位的值,其中id是自增欄位。 select distinct name from t1 能消除重複記錄,但只能取一個欄位,現在要同時取id,name這2個欄位的值。 select distinct id,name from t1 可以取多個欄位
hibernate hql 同時更新多個欄位
方法1 @Override public void paySuccess(Long orderNo) { getCurrentSession().createQuery(sql).setDate("
Oracle-update同時更新多個欄位多個值
--建立表A,B: create table CUX_TEST_TABLE_A (a1 varchar2(240),a2 varchar2(240),a3 varchar2(240)); create table CUX_TEST_TABLE_B (b1 varchar2(2
Sql根據多欄位聯合去重
<span style="color:#333333;">if not object_id('Tempdb..#T') is null drop table #T Go Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar
oracle 同時更新(update)多個欄位多個值
--建立表A,B: create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33)); create table B (b1 varchar2(33),b2 varchar2(33),b3 varchar2(33
oracle資料庫表備份和表恢復 怎樣將Oracle一張表的多個欄位更新到另一張表中去
對於比較簡單的表,資料量不是特別多的表,可以使用簡單的sql語句來進行備份create table T_FA_Cat_20121207 as select * from T_FA_Cat 建立一個新表,把資料儲存起來 insert into T_FA_Cat sele