我用sqlDataSource控件配置数据源,数据库是Oracle的。请看下面2条语句
1、
SELECT DISTINCT B.YJDM FROM (SELECT ID FROM TBL_SHENHE WHERE SFSHWB='是') A, TBL_DESIGN B WHERE A.ID = B.DESIGNID ORDER BY B.YJDM
2、
SELECT DISTINCT B.YJDM FROM TBL_SHENHE A, TBL_DESIGN B WHERE A.SFSHWB='是' AND A.ID = B.DESIGNID ORDER BY B.YJDM
效果是一模一样的,而且显然语句1要比语句2高效一些。但是,当sqlDataSource的select语句配置为语句1时就不行,提示错误“应为标识符或带引号的标识符”。配置为语句2时就没问题。
这是为什么啊?
------解决方法--------------------------------------------------------
建议你不要这样写SQL,用联合查询比较好,效率高还不容易出错。
SELECT DISTINCT B.YJDM FROM
(SELECT ID FROM TBL_SHENHE WHERE SFSHWB='是') A
inner join TBL_DESIGN B
on A.ID = B.DESIGNID
ORDER BY B.YJDM