㈠ 如何對sql資料庫中每一行存的數大小進行比較,並將最大的那個數所在的列名找到
分兩步走比較好,用腳本處理,效率也比較高,能不用子查詢就不用子查詢:
比如php結合mysql:
$res=mysql_query("select * from student_scores");
while($row=mysql_fetch_array($res))
{
$scores=array($row['math'],$row['phycis'],$row['chem'],$row['eng']);
asort($scores);//排序保持索引關系;
$max=array_pop($scores);// 找出成績最好的科目
echo $max;//
echo array_flip($max);
}
㈡ sql如何比較兩個表數據是否一致
1、創建兩張測試表;create table test_aa(id number);
create table test_bb(id number);
㈢ 求SQL語句:比較兩張表中不一樣的行
答案2:
設表有三個欄位,先將兩個欄位再加入一個同名不同值的欄位聯合,再對聯合表按原有全部欄位分組,取計數為1的記錄為兩表不同的記錄.
select fielda,fieldb,fieldc from (select *,a='a' from tablea union select *,a='b' from tableb) a group by fielda,fieldb,fieldc having count(1)=1
===========================
答案一:
轉換所有欄位為字元型,合並成一個欄位以方便比較,然後將兩個表中獨有的數據集分別取出然後連接:
SELECT * FROM A
WHERE
CONVERT(VARCHAR,FIELDA)+
CONVERT(VARCHAR,FIELDB)+
CONVERT(VARCHAR,FIELDC)
NOT IN
(SELECT
CONVERT(VARCHAR,FIELDA)+
CONVERT(VARCHAR,FIELDB)+
CONVERT(VARCHAR,FIELDC)
FROM B
)
UNION
SELECT * FROM B
WHERE
CONVERT(VARCHAR,FIELDA)+
CONVERT(VARCHAR,FIELDB)+
CONVERT(VARCHAR,FIELDC)
NOT IN
(SELECT
CONVERT(VARCHAR,FIELDA)+
CONVERT(VARCHAR,FIELDB)+
CONVERT(VARCHAR,FIELDC)
FROM A
)
㈣ SQL中如何進行數據的比較
是完全匹配,還是部分匹配呢?
匹配"王"字
前面匹配,select * from [a] where 姓名 like '王%'
後面匹配,select * from [a] where 姓名 like '%王'
包含匹配,select * from [a] where 姓名 like '%王%'
完全相等,select * from [a] where 姓名 = '王'
㈤ SQL 如何比較一個表中的多行數據 +50
delete from test aa where exists(select * from test bb where bb.userid<aa.userid and bb.userid<>aa.userid
and bb.Pindex=aa.Pindex and bb.ChkAdd =aa.ChkAdd and bb.ChkEdit =aa.ChkEdit and
aa.ChkDelete=bb.ChkDelete )
㈥ SQL語句怎麼對一列的隨意某兩行進行比較大小,或者是否等於
這個不需要比較,分組然後聚合取最大和最小就可以了
select 地點,種類,min(數量),max(數量) from 表格 group by 地點,種類;
㈦ 求助:如何實現SQL相鄰兩行比較
利用ROW_NUMBER()函數生成行號,
然後自表關聯,行號差1即可。
WITHDataAS(--使用CTE來簡化、清晰化子查詢,尤其是需要使用多次時
SELECT*
,ROW_NUMBER()OVER(ORDERBYID)ASRowNo--生成行號
FROMTableX
)
SELECT...--具體的比較
FROMTableXA
LEFTJOINTableXBONB.RowNo=A.RowNo+1
㈧ 用sql將同一表中所有的A和B列的值做比較 將每行最大的值放到A中
兩種寫法
--1.更新B>A的數據,在WHERE判斷,性能更佳,無需更新到每一條數據
UPDATE表名SETA=BWHEREB>A
--2.更新所有的數據,在CASE里判斷
UPDATE表名SETA=CASEWHENB>ATHENBELSEAEND