从SQL Server 2016+创建JSON(用于JSON路径命令)
我正在尝试以特定的JSON格式创建一些输出,下面的输出示例将重复多次-每所大学一次: 我一直在想我会使用SQL来实现这一点,因为它有forJSON命令,用于处理JSON格式并处理嵌套。在硬编码值时,我可以使用以下代码重新创建上述值:从SQL Server 2016+创建JSON(用于JSON路径命令),sql,json,data-structures,for-json,Sql,Json,Data Structures,For Json,我正在尝试以特定的JSON格式创建一些输出,下面的输出示例将重复多次-每所大学一次: 我一直在想我会使用SQL来实现这一点,因为它有forJSON命令,用于处理JSON格式并处理嵌套。在硬编码值时,我可以使用以下代码重新创建上述值: SELECT HASHBYTES('md5','something') AS id ,'school' AS recordType ,getdate() AS created ,getdate() AS updated
SELECT
HASHBYTES('md5','something') AS id
,'school' AS recordType
,getdate() AS created
,getdate() AS updated
,getdate() AS published
,'ABC University – ABC School of Management' AS name
,'ABC School of Management' as schoolname
,'ABC University' as universityName
, 'ABC School of Management' as sortableName
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
我的问题是,我需要为不同的大学创建100次输出。我想用SQL创建一个数据库表,并在上面运行一些东西。以下是Excel中的数据示例,我已过滤列表,仅显示上述所需的数据以及稍后单独输出中所需的两个其他数据点。我稍后将担心其他输出:
IndiUID SchoolCode DataValue Ranking Band RegionalRank
OVERALL_SCORE XYZ 105 D 23
SCHOOL_NAME_FORMAL XYZ XYZ Institute of Management
SCHOOL_NAME_SORTABLE XYZ XYZ Institute of Management
SCHOOL_NAME_AND_BUSINESS_SCHOOL_NAME XYZ XYZ Institute of Management, XYZ School of Business
STUDENTS_MEDIAN_AGE XYZ 26
OVERALL_SCORE ABC 35 B 3
SCHOOL_NAME_FORMAL ABC ABC School of Management
SCHOOL_NAME_SORTABLE ABC ABC School of Management
SCHOOL_NAME_AND_BUSINESS_SCHOOL_NAME ABC ABC University – ABC School of Management
STUDENTS_MEDIAN_AGE ABC 26
我只是不能完全理解我需要如何构造我的表,以便我可以使用SQL提取相关部分。我想知道是否应该透视表,以便“induid”的值成为数据库表中的字段,或者为每个当前标题项DataValue、Ranking、Band等创建一个新表
我想我可以从表中选择Induid=总分,学校名称,正式等等,但我想知道这是否太混乱了
这就是我的困境所在——我如何将这些数据组织到表中以便能够提取它?这主要是关于创建JSON输出的,所以DB部分是一个特别优雅的解决方案并不重要——我非常熟悉SQL 您可以尝试以下方法 样本数据: 然后使用此查询:
SELECT HASHBYTES('md5', 'something') AS [id],
'school' AS [recordType],
GETDATE() AS [created],
GETDATE() AS [updated],
GETDATE() AS [published],
[school_name_and_business_school_name] AS [name],
[school_name] AS [schoolName],
[university_name] AS [universityName],
[school_sortable] AS [sortableName]
FROM [#school]
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;
给出以下结果:
{"id":"Q3uTDbhLgHnC3YBKcZNrXw==",
"recordType":"school",
"created":"2018-09-07T10:14:44.130",
"updated":"2018-09-07T10:14:44.130",
"published":"2018-09-07T10:14:44.130",
"name":"ABC University – ABC School of Management",
"schoolName":"ABC School of Management",
"universityName":"ABC University",
"sortableName":"ABC School of Management"
},
{"id":"Q3uTDbhLgHnC3YBKcZNrXw==",
"recordType":"school",
"created":"2018-09-07T10:14:44.130",
"updated":"2018-09-07T10:14:44.130",
"published":"2018-09-07T10:14:44.130",
"name":"XYZ University – XYZ School of Management",
"schoolName":"XYZ School of Management",
"universityName":"XYZ University",
"sortableName":"XYZ School of Management"
},
{"id":"Q3uTDbhLgHnC3YBKcZNrXw==",
"recordType":"school",
"created":"2018-09-07T10:14:44.130",
"updated":"2018-09-07T10:14:44.130",
"published":"2018-09-07T10:14:44.130",
"name":"QWE University – QWEC School of Management",
"schoolName":"QWE School of Management",
"universityName":"QWE University",
"sortableName":"QWE School of Management"
}
这有用吗?谢谢,丹。这真的很有帮助
SELECT HASHBYTES('md5', 'something') AS [id],
'school' AS [recordType],
GETDATE() AS [created],
GETDATE() AS [updated],
GETDATE() AS [published],
[school_name_and_business_school_name] AS [name],
[school_name] AS [schoolName],
[university_name] AS [universityName],
[school_sortable] AS [sortableName]
FROM [#school]
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;
{"id":"Q3uTDbhLgHnC3YBKcZNrXw==",
"recordType":"school",
"created":"2018-09-07T10:14:44.130",
"updated":"2018-09-07T10:14:44.130",
"published":"2018-09-07T10:14:44.130",
"name":"ABC University – ABC School of Management",
"schoolName":"ABC School of Management",
"universityName":"ABC University",
"sortableName":"ABC School of Management"
},
{"id":"Q3uTDbhLgHnC3YBKcZNrXw==",
"recordType":"school",
"created":"2018-09-07T10:14:44.130",
"updated":"2018-09-07T10:14:44.130",
"published":"2018-09-07T10:14:44.130",
"name":"XYZ University – XYZ School of Management",
"schoolName":"XYZ School of Management",
"universityName":"XYZ University",
"sortableName":"XYZ School of Management"
},
{"id":"Q3uTDbhLgHnC3YBKcZNrXw==",
"recordType":"school",
"created":"2018-09-07T10:14:44.130",
"updated":"2018-09-07T10:14:44.130",
"published":"2018-09-07T10:14:44.130",
"name":"QWE University – QWEC School of Management",
"schoolName":"QWE School of Management",
"universityName":"QWE University",
"sortableName":"QWE School of Management"
}