您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在纯SQL中编写一个空安全比较“ <=>”?

如何在纯SQL中编写一个空安全比较“ <=>”?

相关问题是在sql获取null == null。但是该答案要求将搜索值写入2次(即:在我的PreparedStatement中有2个问号)!

排名第二和后续的答案提供了一种无需两次绑定搜索值即可执行此操作的方法

SELECT * FROM ROUTERS 
WHERE coalesce(ROUTER_ADDRESS, '') = coalesce( ?, '');

请注意,这需要一个伪值,该伪值永远不能是有效的列值(即“带外”)。我正在使用空字符串。如果没有任何这样的值,则必须忍受两次绑定该值:

SELECT * FROM ROUTERS 
WHERE ROUTER_ADDRESS = ? or (ROUTER_ADDRESS is null and ? is null);
SQLServer 2022/1/1 18:33:42 有428人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶