SELECT fLEFT_DICT_ID fLEFT_VALUE_ID FROM SYSMNSYS_DICT_FILTER f WHERE fRIGHT_DICT_ID fRIGHT_VALUE_ID IN SELECT ELEMENT_PD_ID FROM SYSMNSYS_DATA
这个SQL语句报无效的关系运算符的原因是在子查询中使用了多个列,而主查询中使用了IN运算符。IN运算符只能与单个列或单个值配合使用,不能与多个列配合使用。要解决这个问题,可以将子查询的结果合并为一个单独的列,然后在主查询中使用IN运算符。修改后的SQL语句如下:
SELECT f.LEFT_DICT_ID, f.LEFT_VALUE_ID FROM SYSMN.SYS_DICT_FILTER f WHERE (f.RIGHT_DICT_ID, f.RIGHT_VALUE_ID) IN ( SELECT ELEMENT_PD_ID || ',' || '98ef0acf329b405db8a417cd4fa97a08' AS combined_values FROM SYSMN.SYS_DATA_ELEMENT WHERE ELEMENT_ID = 'b2e40118b39149dea16c0e90e08bb9f8' )
原文地址: http://www.cveoy.top/t/topic/iz02 著作权归作者所有。请勿转载和采集!