sql判断整除_实例分析SQL中除法的三种写法

首先请看

http://topic.csdn.net/u/20070821/15/8a2dac05-51b8-4eb1-b41d-4fbe8a232c85.html

帖中从实际问题出发,讨论SQL语句中如何表示除法运算。

以下是问题的给出与简要描述:

表A:商店信息

ANO, ANAME, WQTY, CITY

101, 韶山书店, 15, 长沙

204, 前门商店, 89, 北京

256, 东风商场, 501, 北京

345, 铁道商店, 76, 长沙

620, 武汉商场, 413, 武汉

表B:商品信息

BNO, BNAME, PRICE

1, 毛笔, 21

2, 羽毛球, 4

3, 收音机, 325

4, 书包, 242

表AB:商店-商品对应关系

ANO, BNO, QTY

101, 1, 105

101, 2, 42

101, 3, 25

101, 4, 104

204, 3, 61

256, 1, 241

256, 2, 91

345, 1, 141

345, 2, 18

345, 4, 74

620, 4, 125

现在要找出至少供应代号为256的商店所供应的全部商品的商店代号ANO,只涉及到表AB。这个SQL语句该怎么写?

具体说,我已经知道关系表达式是:

π ano, bno (AB) ÷ π bno (σ ano = 256 (AB));

我的问题是:如何把这里的除法运算转化为SQL语句呢?

然后下面有很多的回答,在这里我就不一一列出了。

先给出我的测试DDL与SQL语句。

--DDL:

CREATE TABLE AB(

ANO INT,

BNO INT,

QTY INT

);

INSERT INTO AB VALUES ( 101, 1, 105 );

INSERT INTO AB VALUES ( 101, 2, 42 );

INSERT INTO AB VALUES ( 101, 3, 25 );

INSERT INTO AB VALUES ( 101, 4, 104 );

INSERT INTO AB VALUES ( 204, 3, 61 );

INSERT INTO AB VALUES ( 256, 1, 241 );

INSERT INTO AB VALUES ( 256, 2, 91 );

INSERT INTO AB VALUES ( 345, 1, 141 );

INSERT INTO AB VALUES ( 345, 2, 18 );

INSERT INTO AB VALUES ( 345, 4, 74 );

INSERT INTO AB VALUES ( 620, 4, 125 );

--SQL:

--1、正统做法:

SELECT DISTINCT ANO from AB

WHERE ANO NOT IN (

SELECT ANO from (

SELECT ANO,BNO from (

SELECT ANO from AB

) AS r1 CROSS JOIN (

SELECT BNO from AB

WHERE ANO = 256

) AS s1

) AS rs1

WHERE CHECKSUM(ANO,BNO)


版权声明:本文为weixin_39884270原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。