首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带参数的SQL:...其中值为空||其中column_name = column_name

带参数的SQL:...其中值为空||其中column_name = column_name
EN

Stack Overflow用户
提问于 2020-07-13 03:12:44
回答 1查看 32关注 0票数 0

我在Ruby on Rails (或任何其他编程语言)中有一个方法,我调用quit a complex SQL语句(Common Table Expression (STE) SQL语句)。为了使语句更通用,我将SQL语句包装在一个rails方法中,在这个方法中我可以传入一个参数。为了简单起见,我简化了SQL语句以隔离我的问题。

代码语言:javascript
运行
复制
def sql_statement(id = 'null')
    tree_sql =  <<-SQL
      SELECT * FROM sample_table WHERE foreign_id = #{id}
    SQL
    find_by_sql(tree_sql)
end

因此,如果我调用不带参数的方法,我希望它执行

代码语言:javascript
运行
复制
SELECT * FROM sample_table WHERE foreign_id IS NULL

如果我传递一个参数(如值5),它将执行以下命令:

代码语言:javascript
运行
复制
SELECT * FROM sample_table WHERE foreign_id = 5

我必须如何更改SQL语句才能使其工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-13 04:04:38

试一试

代码语言:javascript
运行
复制
SELECT * 
FROM sample_table 
WHERE (foreign_id = #{id} and #{id} is not null)
   OR (foreign_id is null and #{id} is null)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62865453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档