java - SQL用IN语句选择所有记录

标签 java sql webdynpro sap-enterprise-portal

就我而言,只有前 2 个参数是强制性的。当用户没有给出其余参数时,我将使用字符“%”作为 LIKE 语句,以便显示所有数据。知道如何解决 IN 语句的这个问题吗?解决方案参数 IN ('%') 不起作用 => Null

参数:
java.sql.Timestamp、java.sql.Timestamp、java.lang.String、java.lang.String、java.lang.String、java.lang.String

查询:

SELECT * 
FROM RC_Recall t INNER JOIN RC_RECALLSTORE s ON t.ID = s.RECALLID
WHERE t.creationdate >= ?1 AND t.enddate <= ?2 AND  t.id LIKE ?3 
      AND t.afdeling IN (?4) AND s.storeid IN (?5)
ORDER BY ID DESC

最佳答案

SQL 中的 IN 语句不能接受通配符。您必须在查询中添加 OR 才能使其正常工作...

select * 
from RC_Recall t INNER JOIN RC_RECALLSTORE s ON t.ID = s.RECALLID
where t.creationdate >= ?1 
AND t.enddate <= ?2 
AND t.id LIKE ?3 
AND ('%' = ?4 OR t.afdeling IN (?4))
AND ('%' = ?5 OR s.storeid IN (?5))
ORDER BY ID DESC

如果您使用参数位置来传递参数,则可能需要将其更改为

AND ('%' = ?4 OR t.afdeling IN (?5))
AND ('%' = ?6 OR s.storeid IN (?7))

希望有帮助

关于java - SQL用IN语句选择所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506515/

相关文章:

java - 如何设置web dynpro的环境?

java - 如何生成一定范围内的随机数

java - 简单的进度对话框单击并在完成操作时隐藏

mysql - MySQL 中何时使用单引号、双引号和反引号

sql - MS Access 2007 sql函数?

php - 如何连接不同的表?

java - JFrame 在窗口大小最大化之前不会更新

java - 我们的git远程仓库与本地仓库不同步

java - POI 3.2 Excel 文件数据丢失