㈠ sql 去除重復記錄,多欄位匹配
--若id為int數據類型,統計規則是去重,取其最小的id
selectmin(id),a,b,c,dfromtable_namegroupbya,b,c,d
--方法二:請修改table_name表名稱
select*fromtable_namewhereidnotin
(
selecta.id
fromtable_nameainnerjoin(selecta,b,c,dfromtable_namegroupbya,b,c,dhavingcount(*)>1)b
ona.a=b.aanda.b=b.banda.c=b.canda.d=b.d;
)
㈡ sql 匹配相似記錄
不知道你的相似度判斷的規則是什麼,通過資料庫實現的話,可以考慮定義一個相似度比較函數,然後在update時調用並判斷,下面是MSSQL的思路,不過需要把相似度判斷的函數寫完整。
其他資料庫應該也可以用相同思路來做吧。
FUNCTION fn_GetSimilar
(
@strA As Varchar(255), --傳入的待比較的字元
@StrB As Varchar(255 --期望字元
)
RETURNS int
AS
BEGIN
DECLARE @Result int;
if @strA= @StrB
begin
set @Result=100
end
----
--相似度判斷條件及判斷方法賦值
----
RETURN @Result
END
如果函數測試沒問題,就可以調用下面的方法來修改了
update 不規則名稱表 set StdMedName=b.CommonName from 標准名稱表 b
where dbo.fn_GetSimilar( 不規則名稱表.IrrMedName,b.CommonName)>相似度的值
㈢ sql查詢兩個表相同的數據
SQL語句如下:
SELECT * from TABLE1
full join TABLE2 on TABLE1.xingming = TABLE2.xingming
where
TABLE1.xingming is null or TABLE2.xingming is null
分析:
1、首先得出兩個表的並集
從結果中可以看出,表1中的趙二在表2中沒有相同xingming的記錄。
表2中的劉六在表1中沒有相同xingming的記錄。
本題還有其它多種解法,此處列出比較好理解的一種。
(3)sql不同列的相同內容匹配擴展閱讀:
使用自聯接
即使表在資料庫中沒有自反關系,也可將它與自身聯接。 例如,可使用自聯接查找生活在同一城市的作者對。
與任何聯接一樣,自聯接至少需要兩個表。 不同之處在於,不是向查詢中添加第二個表,而是添加同一個表的第二個實例。 這樣,可將表的第一個實例中的列與第二個實例中的同一列相比較,這樣可相互比較列中的值。查詢和視圖設計器為表的第二個實例分配一個別名。
例如,如果要創建自聯接來查找居住在 Berkeley 內的所有作者對,可將表的第一個實例中的 city 列與第二個實例中的 city 列相比較。 所得到的查詢可能類似於:
SELECT
authors.au_fname, authors.au_lname, authors1.au_fname AS Expr2, authors1.au_lname AS Expr3
FROM authors INNER JOIN authors authors1 ON authors.city = authors1.city
WHERE
authors.city = 'Berkeley'
參考資料:
網路.full join
㈣ sql語句自動匹配兩個表兩個欄位內容相似的記錄
如果是SQLServer的話可以試試這方法
1.LEFT截取左邊第幾個,RIGHT同理
->
where
A1
LIKE
'%'+LEFT(B1,2)+'%'
2.substring截取從第幾個開始數的多少個->where
A1
LIKE
'%'+SUBSTRING(B1,1,2)+'%'
其他的資料庫我就不懂了,不過oracle好像是substr函數
㈤ SQL中,怎樣讓同一個表中不同列匹配然後輸出不同值行
匹配是什麼意思?兩列的值相等?
select * from count where ysje<>sshje
㈥ sql語句如何查詢一個表中某一列的相同數據
假設表名是num,列名是a,則查詢語句為:
SELECT * FROM num WHERE a IN(
SELECT a FROM num GROUP BY a HAVING COUNT(a)>1
)
其中:
SELECT 語句:SELECT 語句用於從表中選取數據。結果被存儲在一個結果表中(稱為結果集)。
WHERE 子句:如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。
GROUP BY 語句:GROUP BY 語句用於結合合計函數,根據一個或多個列對結果集進行分組。
HAVING 子句:在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用。
COUNT() 函數:返回匹配指定條件的行數。
(6)sql不同列的相同內容匹配擴展閱讀:
sql語言特點:
1、一體化:SQL集數據定義DDL、數據操縱DML和數據控制DCL於一體,可以完成資料庫中的全部工作。
2、使用方式靈活:它具有兩種使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主語言中使用。
3、非過程化:只提操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機「做什麼」,而不需要告訴它「怎麼做」。
4、語言簡潔,語法簡單,好學好用:在ANSI標准中,只包含了94個英文單詞,核心功能只用6個動詞,語法接近英語口語。
㈦ sql查找某一欄位相同的所有數據
1、在我們的電腦上打開資料庫,這里新建一張含有重復數據的user表做示例。
㈧ 用SQL查詢兩個表中相同的數據
1、創建測試表;
create table test_col_1(id number, var varchar2(200));
create table test_col_2(id number, var varchar2(200));
㈨ sql實現兩列數據的匹配
設表名為TABLENAME,列1為COL1,列2為COL2則這樣求出所有第一列在第二列中存在的記錄:
SELECT * FROM TABLENAME A WHERE COL1 IN(SELECT COL2 FROM TABLENAME)
===============================
SELECT * FROM TABLENAME A
WHERE EXISTS(SELECT 1 FROM TABLENAME B WHERE B.COL2 LIKE '%'+A.COL1+'%')
=========================
SELECT DISTINCT A.* FROM TABLENAME A,TABLENAME B WHERE B.COL2 LIKE '%'+A.COL1+'%'
㈩ sql語句如何查詢一個表中某兩個欄位的相同數據
查詢一個表中某兩個欄位的相同數據代碼是:Select Name,ID From A group by Name,ID having count (*)>1。
結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;
sql 語句就是對資料庫進行操作的一種語言。
sql="select * from 數據表 where欄位名=欄位值 order by欄位名[desc]"(按某個欄位值降序排列,默認升序ASC);
sql="select * from 數據表 where欄位名like '%欄位值%' order by 欄位名 [desc]";
sql="select top 10 * from 數據表 where欄位名=欄位值 order by 欄位名 [desc]";
sql="select top 10 * from 數據表 order by 欄位名 [desc]";
sql="select * from 數據表 where欄位名in ('值1','值2','值3')";
sql="select * from 數據表 where欄位名between 值1 and 值2"。
sql語句:
更新:update table1 set field1=value1 where 范圍;
查找:select * from table1 where field1 like '%value1%' (所有包含'value1'這個模式的字元串);
排序:select * from table1 order by field1,field2 [desc];
求和:select sum(field1) as sumvalue from table1;
平均:select avg(field1) as avgvalue from table1;
最大:select max(field1) as maxvalue from table1;
最小:select min(field1) as minvalue from table1[separator]。