【发布时间】:2022-08-08 19:57:22
【问题描述】:
我有一张包含客户信息的表格。客户 ID、名字、姓氏、地址、州、城市、邮政编码。邮政编码是 char 数据类型。在 oracle devgym 中,它要求我从 CustomerID 介于 100 到 200 之间的所有客户的 PostalCode 中减去 1。我尝试过类似的操作
Update Customer
Set PostalCode = PostalCode - 1
Where CustomerID BETWEEN \'100\' AND \'200\'
但我相信,由于 PostalCode 是 char 数据类型,我需要寻找另一种解决方案。我在网上找不到任何可以明确回答从 char 数据类型中减去 1 的内容,或者我可能问错了问题。
-
Oracle 支持隐式类型转换。你试过任何代码吗?你有什么错误?
-
UPDATE Customer SET PostalCode = PostalCode - 1 WHERE CustomerId BETWEEN 100 AND 200; SELECT * FROM Customer WHERE CustomerId BETWEEN 100 AND 200;
-
如果您绝对确定
PostalCode是数字(除了数字之前/之后的空格之外没有任何其他符号),这将起作用并返回一个数字(例如\'001234\'将返回1233)。如果这不是你的情况(例如,你可能还有其他符号)或者你得到你不想要/期望的输出,那么请在问题中提供一些清晰的说明:结果有什么问题,提供样本数据和预期输出。 -
这与 Oracle Dev Gym 中的哪个测验有关?
标签: sql database oracle syntax char