【发布时间】:2020-05-16 21:39:34
【问题描述】:
这是我的代码:
create DATABASE assignment
CREATE TABLE Books (
id INTEGER PRIMARY KEY,
category TEXT,
price FLOAT CHECK (price>0),
promoted bit DEFAULT 1
);
INSERT INTO Books (id, category, price) VALUES (1, 'Dictionary', 100);
INSERT INTO Books (id, category, price) VALUES (2, 'Dictionary', 150);
INSERT INTO Books (id, category, price) VALUES (3, 'Science', 120);
INSERT INTO Books (id, category, price) VALUES (4, 'Science', 190);
INSERT INTO Books (id, category, price) VALUES (5, 'Science', 320);
CREATE VIEW PromotionSummary AS
SELECT category, MIN(price) AS minprice , MAX(price) AS maxprice
FROM Books
WHERE promoted
GROUP BY category;
面临这个错误:
Msg 4145,Level 15,State 1,Procedure PromotionSummary,第 5 行 在预期条件的上下文中指定的非布尔类型表达式,靠近“GROUP”。
我现在正在使用 azure 数据库。
【问题讨论】:
-
MySQL 不是 SQL Server - 使用正确的引擎参考!
-
位数据类型可以与符号 b'n' 一起使用。在您的情况下,它将是 WHERE Promotion = b'1' 为真。 dev.mysql.com/doc/refman/8.0/en/bit-type.html 如果您尝试 BOOLEAN,它显然会自动将 true 和 false 转换为 1 和 0;我对布尔数据类型 (mysqltutorial.org/mysql-boolean) 更有信心,但我认为两者都可以工作。其他一切看起来都不错。
标签: sql sql-server tsql azure-sql-database