当前位置:首页 » 编程语言 » 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--三个参数就是你讲的那三个数