sql - 从其他两个属性在 Oracle 数据库中创建一个新属性
问题描述
我有一个类表,如下所示:
Classes(classid, dept_code, course#, sect#, year, semester, limit, class_size, room, TA_B#)
问题是:查找 2017 年春季提供的每个本科班的 classid、dept_code 和 course#(即 course# < 500)。对于每个这样的班级,还列出可用的座位数(由 limit - class_size 计算)在标题“seats_available”下。
我尝试了这种简单的方法:
select classes.classid, classes.dept_code, classes.course#,
classes.limit-classes.class_size as'seats_available'
from classes
where limit>class_size and year='2017' and semester='Spring'and course# < 500;
0 但我收到一个错误:
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
我错过了什么?如果我删除此行代码,则会出现此错误:classes.limit-classes.class_size as'seats_available'
我正在使用 Oracle 数据库
解决方案
在 SQL 标准中,标识符需要用双引号 ( "
) 括起来。Oracle 数据库符合那里的标准。
单引号 ( '
) 用于字符常量,例如,正如您在 中所做的那样semester='Spring'
,它们不能用于列名、表名或列别名等标识符。
所以你需要使用:
classes.limit-classes.class_size 为“seats_available”
您实际上并不需要双引号,因为您的标识符不包含任何无效字符,所以
classes.limit-classes.class_size as seats_available
也能正常工作
不相关,但是:数字不应该用单引号括起来2017
是数字常量,'2017'
是字符串常量。所以你应该where year = 2017
改用
推荐阅读
- c - printf中函数的评估顺序是什么
- python - 代码结束时在 Python 中再次启动函数
- mysql - Mysql - 基于搜索表单在表之间传输数据
- drupal-7 - 在 Drupal 7 Tpl 文件中使用 db_select 的最佳方法是什么?
- android - 在 Kotlin 中将可变的实时数据解析为数组
- mysql - 使用前 2 个条目中的值向表中添加移动平均列
- django - 从 send_mail 上的地址更改
- angular - rxjs-compat 与 pipe() 方法
- c# - 在不更改 DataGridView 表的情况下搜索 DataGridView
- android - 使用“工具”时,“这个”包含什么?