sql - 如何在 'order by' 中添加条件?

标签 sql

我有一个带有输入参数的存储过程,现在根据此参数,我的“order by”语句将发生变化,就像如果输入参数是“ID”(int 类型列),则按 ID 排序,如果是“ProductType' 然后按 Producttype 排序,如果是 'IssueDate' 则应按 IssueDate 排序。

现在我在 SP 中添加了 2 个 if else 语句,但是这个解决方案不可扩展,所以我的问题是有没有更好的方法。

最佳答案

如果使用 SQL Server,您可以使用 case 语句

order by
    case inputparameter
    when 'id'  then id
    when 'productType' then ProductType
    else  defaultOrderBy
    end

关于sql - 如何在 'order by' 中添加条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4213270/

相关文章:

sql - Postgres 数据转换为 XML 格式

c# - 如何即时将 lambda 表达式转换为 Sql 查询?

mysql - 主键可以为空吗?如果是,为什么这个改变会导致这个结果?

php - 删除不同数组维度之间的重复项

mysql - 向列添加一个值,指示一条记录来自哪个表+sql

sql - 在 Oracle 中连接表(多个外连接)

mysql - 优雅的百分比解析 - MySQL

sql - 如何从历史数据中检索行程?

php - 如何更新数据库中的多个字段

sql - 选择最新的可用值 SQL