sql-server - 如何在 TSQL 中有条件地返回“For XML”和“For JSON”
问题描述
我想要一个存储过程,它可以根据参数的值返回 JSON、XML 或表格数据。
例如,
DECLARE @ReturnFormat = 'XML'
会返回:
SELECT *
FROM MyTable
FOR XML PAT('MyPath'), TYPE, ROOT('MyRoot')
如果@ReturnFormat = 'JSON'
,它将返回
SELECT *
FROM MyTable
FOR JSON PATH
如果@ReturnFormat = 'Tabular'
,它将返回
SELECT *
FROM MyTable
但我显然不想复制/粘贴 SQL。我怎么会做出这样的有条件回报?
解决方案
简单的问题是什么:
CREATE PROCEDURE dbo.YourProc
@ReturnFormat varchar(10)
AS
BEGIN
SET NOCOUNT ON;
IF @ReturnFormat = 'XML'
your XML SELECT
ELSE IF @ReturnFormat = 'JSON'
your JSON SELECT
ELSE IF @ReturnFormat = 'Tabular'
your tabular SELECT
/* If needed, add an ELSE. */
END;
推荐阅读
- reactjs - React componentDidUpdate 生命周期以 null prevState 进入
- node.js - Npm -v 错误:找不到模块'are-we-there-yet'
- email - mail-sor-xxx.google.com 未通过 DKIM / SPF 检查
- java - 如何将 BestScores 保存在文件中 JAVA
- kubernetes - 增加 pod 内的 /dev 目录大小
- python - 为什么 conda 不从 conda-forge 安装最新版本的 spyder
- python - Pandas:在添加新行时,它会替换我现有的数据框值吗?
- javascript - ESLint 没有找到 React Native 组件
- python - 结合具有不同索引的两个系列并仅保留交集
- hibernate - 如何在休眠限制中检查 sysdate - 1