谁能具体说一下这个sql语句执行的详细过程

2025-12-17 03:52:38
推荐回答(2个)
回答1:

declare @sql varchar(8000)
set @sql = 'select level ' ------赋值@sql
print @sql ---执行的第一步,打印出来
select @sql = @sql+', Min(case months when ''' + months + ''' then times else 0 end) [' + months + ']'
from (select distinct months from M) as a ----使用select 的给@sql在次赋值
print @sql ----执行的第二步 ,打印出来
set @sql = @sql + ' from M group by level' ----在一次@sql赋值
print @sql ----执行的第三步,打印出来
exec(@sql) ---使用EXEC调用字符串
print @sql -----打引出EXEC调用的SQL语句
Select * From M ---查询M表

在查询分析器里执行上面的你就知道它在做什么了!!
其实就是字符串拼凑!

回答2:

我对这个也稀里糊涂的。。
期待有高人详细解析下。