gpt4 book ai didi

sql-server - 这是一个高效的 sql server 查询吗?

转载 作者:行者123 更新时间:2023-12-02 15:34:12 24 4
gpt4 key购买 nike

如果我以这种格式编写存储过程,sql server 会有效地执行此操作还是应该在服务器端(.net)完成 sql 'weaving'?

注意:这只是我的查询的一个粗略想法,还有更多的“if”子句构建了我使用“exec”执行的查询

declare @sql nvarchar(4000)
declare @order nvarchar(4000)


set @sql = 'select id, name'
set @sql = @sql + ' ....'

if(@sortOrder)
set @order = 'order by name desc'

exec @sql + @order

最佳答案

为什么不直接在 order by 中使用 case 语句,而不是构建 SQL 字符串?

例如(假设在具有 FirstName 和 LastName 字段的表中按名字和/或姓氏排序)

order by
case
when @sortExpression = 'lastname asc' then CAST(LastName as sql_variant)
when @sortExpression = 'firstname asc' then CAST(FirstName as sql_variant)
end asc,
case
when @sortExpression = 'lastname desc' then CAST(LastName as sql_variant)
when @sortExpression = 'firstname desc' then CAST(FirstName as sql_variant)
end desc

此外,如果您的 order by 子句每次通过动态 SQL 都不同,则查询计划将永远不会被重复使用。

关于sql-server - 这是一个高效的 sql server 查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/463122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com