【发布时间】:2016-08-26 14:20:00
【问题描述】:
SELECT triple_join('A multiple join on the Equipment, EquipmentTypes, and
RentalInfo works effectively: ',
CASE WHEN
(SELECT name, e.riid, rental_start, in_use FROM Equipment AS e JOIN
EquipmentTypes ON equipment_type = etid JOIN RentalInfo AS ri ON
e.riid = ri.riid)
= ('Enabler 420', 1, '20141107', 1)
THEN 'Passed' ELSE 'Failed' END
);
这是测试我的联接是否有效工作的代码。但是,当我运行代码时,它说我在“,”附近有语法错误。谁能告诉我这是怎么回事?
P.S.:Equipment、EquipmentTypes 和 RentalInfo 是我在另一个文件中定义并“插入”到的表。
【问题讨论】:
-
第一个猜测是跨越两行的字符串的解析错误。您没有提及数据库或您如何处理查询,所以这是可能的。
-
triple_join是不是有两个参数的函数?您的 DBMS 是否支持使用单个=比较多个列?连接真的只返回一行吗? -
我遵循此链接中描述的格式:stackoverflow.com/questions/754527/best-way-to-test-sql-queries 我尝试使用同一行上的所有命令编写测试用例,所以我想这不是问题所在。是的,连接只返回一行:Enabler 420|1|20141107|1
-
@Shubham Goenka “我遵循了格式……”。你没有。你不能比较元组,只能比较值。
-
您使用的是什么 DBMS?你可以添加一个标签来表明这一点吗?
标签: sql unit-testing