放 select 后面的子语句(标量子查询)在 SQL 中SELECT 后面不能直接接一个完整的“子语句”即另一个 SELECT 语句作为普通列除非这个子查询满足特定语法要求。但你可以通过以下几种合法方式在 SELECT 后使用子查询✅ 正确用法SELECT 后的子查询必须是 标量子查询Scalar SubquerySELECTcolumn1,(SELECTsome_columnFROManother_tableWHERE...)AScomputed_valueFROMmain_table;SELECTttpi.PROJ_ID,(SELECTttpie.PROJ_NAMEFROMTZ_T_PROJ_INFO_EXTEND ttpieWHEREttpie.PROJ_EXTEND_IDttpi.PROJ_EXTEND_ID)ASproj_nameFROMTZ_T_PROJ_INFO ttpiWHEREttpi.IS_DELETE!1;需要保证:最多返回一行否则报错ORA-01427: single-row subquery returns more than one row 或类似只返回一列替代方案用 JOIN 代替标量子查询推荐SELECTttpi.PROJ_ID,ttpie.PROJ_NAMEFROMTZ_T_PROJ_INFO ttpiLEFTJOINTZ_T_PROJ_INFO_EXTEND ttpieONttpie.PROJ_EXTEND_IDttpi.PROJ_EXTEND_IDWHEREttpi.IS_DELETE!1;放 from的子语句(派生表)“子语句”是指整个 FROM 部分用子查询叫派生表 / Derived Table那是允许的SELECTproj_id,statusFROM(SELECTPROJ_ID,PROJ_STATUSFROMTZ_T_PROJ_INFOWHEREIS_DELETE!1)ASsubqueryWHEREstatus!7;这是合法的但这是 FROM 后的子查询不是 SELECT 后。场景是否允许说明SELECT (子查询)✅ 仅当子查询返回单行单列标量子查询SELECT 子查询.*❌ 不允许不能展开多列SELECT 多行子查询❌ 报错必须唯一值FROM (子查询)✅ 允许派生表需别名