SELECT b.*, a.[CorpName] AS username FROM ums_eventLog b LEFT JOIN [FlyBusiness].[dbo].[tb_FlyKeyUpdate] a ON a.dogid = b.userid AND a.active = 1 WHERE b.userid != 0 ORDER BY b.reqtime DESC Java中xml中书写sql 提示 除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。如何修改
时间: 2024-04-13 11:30:27 浏览: 153
在Java中,如果你要在XML文件中编写SQL语句并使用ORDER BY子句,你可以使用以下方法:
1. 将SQL语句放在CDATA块中,以避免XML解析器对特殊字符进行转义。例如:
```xml
<sql><![CDATA[
SELECT
b.*,
a.[CorpName] AS username
FROM
ums_eventLog b
LEFT JOIN [FlyBusiness].[dbo].[tb_FlyKeyUpdate] a ON a.dogid = b.userid AND a.active = 1
WHERE
b.userid != 0
ORDER BY
b.reqtime DESC
]]></sql>
```
2. 如果你使用的是MyBatis等ORM框架,可以将SQL语句放在一个单独的XML文件中,然后通过框架提供的方式引用该SQL语句。例如:
在SQL语句的XML文件(例如sql.xml)中:
```xml
<sql id="selectEventLogWithUsername">
SELECT
b.*,
a.[CorpName] AS username
FROM
ums_eventLog b
LEFT JOIN [FlyBusiness].[dbo].[tb_FlyKeyUpdate] a ON a.dogid = b.userid AND a.active = 1
WHERE
b.userid != 0
ORDER BY
b.reqtime DESC
</sql>
```
在Java代码中引用SQL语句:
```java
@Select("SELECT * FROM (#{selectEventLogWithUsername})")
List<EventLog> selectEventLogs();
```
请注意,以上示例中的代码可能需要根据你的实际情况进行适当调整。
阅读全文