SQL 的行列互转操作,配合带参数的存储过程,用起来还挺顺的。像那种需要把执行结果赋值给变量的场景,用OUTPUT
参数就比较方便。嗯,如果你习惯用exec
来动态执行语句,那最好也顺手把返回值接起来,这样写日志、做判断都更灵活。
行转列的场景多,比如统计各个产品每天的销量。列转行就适合做那种多字段拆分,比如按月份拆工资项啥的。用存储过程包起来还能做权限控制,响应也快。
如果你对存储过程
的输入输出参数还不太熟,下面这几个链接可以看看:
- 调用带输入参数存储过程,对新手挺友好
- 输出参数的使用方法,里面有写入变量的例子
- OUTPUT 参数的示例解析,细节比较全
哦对了,如果你用的是Oracle
或MySQL
,也有对应的写法和注意点,可以顺手看看:
,把这套逻辑理清楚,对以后写复杂 SQL 逻辑还挺大。如果你在写报表、数据清洗、自动任务这些,可以重点练练。