當前位置:首頁 » 編程語言 » abc演算法sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

abc演算法sql

發布時間: 2022-05-03 14:58:55

sql 問個題 有abc三列 比較列大小 選擇最大列

邏輯不嚴密啊,如果a>b>c呢?如果a<b且a<c呢?
如果邏輯清楚了,可以分段查詢出來,再union起來;
或者用case語句</b且a<c呢?

⑵ abc三個兩兩組合有多少種方式 用sql實現

是6種 AB AC BC BA CA CB 就這6樣

⑶ SQL如何按abcabc規律排序

建議這種邏輯不要在底層的SQL中處理,交給上層層或者service層處理。

方法一:如果是已經存在的數據不需要更新與插入的話,建議使用TBSchele定時刷。
方法二:如果是需要將插入的數據排序時,可以根據你所說的ABC的欄位進行生成特定的ID進行排序。更新時用事務批量更新最近插入的不重復數據的ID,達到匹配。
希望有所幫助。

⑷ SQL資料庫ABC表跨表查詢

a是定值嗎!也就是王蘭。(這個值是知道的)如果是這樣。
則寫一個主SQL+一個子SQL。先查出王蘭所在的年級(子SQL),再查出這個年級有幾班!
select C.b from C where C.a = (select B.b from B where B.a = '王蘭')

⑸ sqlserver ABC分類怎麼算出來

CREATE TABLE #test(
itemCode VARCHAR(10),
itemAmount INT
);
go

INSERT INTO #test
SELECT '1010001', 1000 UNION ALL
SELECT '1010002', 500 UNION ALL
SELECT '1010003', 700 UNION ALL
SELECT '1010004', 200 UNION ALL
SELECT '1010005', 1300 UNION ALL
SELECT '1010006', 1200 UNION ALL
SELECT '1010007', 100 UNION ALL
SELECT '1010008', 600 UNION ALL
SELECT '1010009', 800 UNION ALL
SELECT '1010010', 700 UNION ALL
SELECT '1010011', 500 UNION ALL
SELECT '1010012', 1000 UNION ALL
SELECT '1010013', 300 UNION ALL
SELECT '1010014', 400 UNION ALL
SELECT '1010015', 900 UNION ALL
SELECT '1010016', 800 UNION ALL
SELECT '1010017', 200 UNION ALL
SELECT '1010018', 100 UNION ALL
SELECT '1010019', 1100 UNION ALL
SELECT '1010020', 1200;
go

With MyCte AS
(
SELECT
ROW_NUMBER() OVER( ORDER BY itemAmount DESC ) AS NO,
t.itemCode,
t.itemAmount
FROM
#test t
)
SELECT
itemCode,
itemAmount,
STR( 100 * itemAmount / tSum.itemAmountSum, 5, 2) + '%' AS [佔比],
CASE
WHEN (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO <= MyCte.NO ) / tSum.itemAmountSum <= 0.5 THEN 'A'
WHEN (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO <= MyCte.NO ) / tSum.itemAmountSum > 0.5
AND (SELECT SUM(itemAmount) FROM MyCte M2 WHERE M2.NO <= MyCte.NO ) / tSum.itemAmountSum < 0.8 THEN 'B'
ELSE 'C' END AS [類別]
FROM
MyCte,
(SELECT SUM(itemAmount) * 1.0 AS itemAmountSum FROM #test) tSum
ORDER BY
MyCte.itemAmount DESC;

itemCode itemAmount 佔比 類別
---------- ----------- ------ --
1010005 1300 9.56% A
1010006 1200 8.82% A
1010020 1200 8.82% A
1010019 1100 8.09% A
1010001 1000 7.35% A
1010012 1000 7.35% A
1010015 900 6.62% B
1010016 800 5.88% B
1010009 800 5.88% B
1010010 700 5.15% B
1010003 700 5.15% B
1010008 600 4.41% C
1010002 500 3.68% C
1010011 500 3.68% C
1010014 400 2.94% C
1010013 300 2.21% C
1010017 200 1.47% C
1010004 200 1.47% C
1010007 100 0.74% C
1010018 100 0.74% C
(20 行受影響)

SQL Server 2008 Express 下測試通過.

⑹ SQL 分組篩選取標識最大的那一行

  • 假設數據表名為haha,內容如下
    id name data
    1 ABC 2
    2 ABC 3
    3 ABC 5
    1 DEF 3
    2 DEF 4

    只允許使用查詢,不能使用創建表的語句,結果中name列的值具有唯一性且包含原表中該列所有的值,如果有重復的,只取對應id列的值為最大的。

  • 查詢結果為
    id name data
    3 ABC 5
    2 DEF 4

    以上只是假設,實際數據表大小超過600MB

⑺ sql如何查詢整個資料庫包含abc關鍵字的數據

先把資料庫中所有表名稱找到 ,然後逐個表查詢
declare @name varchar(50),@tt varchar(10)
set @tt = '%abc%'
declare cc cursor for
select name from sysobjects where xtype='U'
open cc
fetch cc into @name
while @@fetch_status = 0
begin
exec('selec *from '+@name +' where abc like '+@tt)
fetch cc into @name
end

⑻ SQL語句ABC三列C列等於A列減B列且自動算出結果,當輸入A列和B列數據時C列自動算出結果,

  1. 建觸發器自動計算c的值

  2. 表只建a 和b兩列 ,查詢的時候做a-b as c 得出結果

  3. 插入之前用程序算出c的值 , 直接插入

⑼ sql abc是一個三位整數 找出所有滿足abc=a∧3+b∧3+c∧3條件的三位正整

--sqlserver
declare@aint,@bint,@cint,@nint
set@a=1
while@a<=9
begin
set@b=0
while@b<=9
begin
set@c=0
while@c<=9
begin
set@n=@a*100+@b*10+@c
if@n=@a*@a*@a+@b*@b*@b+@c*@c*@c
print@n
set@c=@c+1
end
set@b=@b+1
end
set@a=@a+1
end

⑽ 可以用SQL編程求ABC三個數最大的一個嗎//

--創建過程
create proc test_0920
@a int,@b int,@c int
as
create table #tmp
(value int)

insert into #tmp values (@a)
insert into #tmp values (@b)
insert into #tmp values (@c)
select max(value) from #tmp

--執行exec test_0920 120,3003,900--三個參數就是你講的那三個數