rdbms工具如何在select语句中执行*。提出问题的原因是它在不同的rdbms工具中的用法不同。 例如:oracle和db2在以下语句中给出错误,但是在mysql,mssql,sybase中可以正常工作。看起来像是SQL解析器的问题。
import { FormControl, FormGroup, Validators } from '@angular/forms';
export class Component {
markerTypes = [{id:1,desc:'abc'}, {id: 2,desc:'xyz'}];
default= 1;
markerForm: FormGroup;
constructor() {
this.markerForm= new FormGroup({
markerType: new FormControl(null)
});
this.markerForm.controls['markerType'].setValue(this.default, {onlySelf: true});
}
}
或
select col_name,* from table_name
答案 0 :(得分:0)
仅当*
中没有其他列引用或表达式时,Oracle(可能还有DB2)才接受未经修饰的SELECT
。
但是,始终允许使用表别名。所以你可以这样写:
select col_name, t.*
from table_name t
请谨慎注意:结果集将有两个具有相同名称的列,这可能会导致其他问题。
答案 1 :(得分:0)
Db2 11.1支持不合格的*
。例如
db2 "create table table_name( col_name int )"
DB20000I The SQL command completed successfully.
db2 "select col_name,* from table_name"
COL_NAME COL_NAME
----------- -----------
0 record(s) selected.
答案 2 :(得分:0)
https://en.wikipedia.org/wiki/SQL#Interoperability_and_standardization
SQL实现在供应商之间不兼容,不一定完全遵循标准。
“由于某些原因导致数据库系统之间缺乏可移植性,请参见上面的Wikipedia链接”