You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse Analytics中WITH子句及OPENROWSET语法作用咨询

关于Azure Synapse Analytics中两个SQL语句的疑问解答

一、WITH (jsonContent varchar(MAX)) AS [result] 的含义

这个语句用于定义外部数据源返回结果集的列结构,拆解细节如下:

  • jsonContent:是为结果集中的列指定的名称,后续查询可通过该名称引用对应列的数据
  • varchar(MAX):设定该列的数据类型为可变长度字符型,MAX表示支持存储最大长度的文本内容,适配完整JSON字符串的存储需求
  • AS [result]:给外部数据源返回的临时结果集起别名result,方便后续SQL语句(如SELECT)直接引用这个结果集

二、读取JSON文件时OPENROWSET中with (doc nvarchar(max)) as rows的作用

你的JSON文件采用每行一个独立JSON对象的格式(JSON Lines),用OPENROWSET读取时指定了format='csv',同时将fieldterminator和fieldquote都设为0x0b(垂直制表符)——由于你的JSON内容里不会出现该字符,这样就能把每行的完整JSON内容当作CSV的单个字段读取。

这里的with (doc nvarchar(max)) as rows作用具体为:

  • doc:定义存储单行JSON内容的列名,后续可通过JSON_VALUE(doc, '$.xxx')这类函数解析JSON中的具体字段
  • nvarchar(max):选择nvarchar是因为JSON可能包含Unicode字符(比如非英文的地区名称),max确保能容纳任意长度的单行JSON内容,避免出现内容截断
  • AS rows:给OPENROWSET返回的临时结果集起别名rows,让外层SELECT可以直接引用结果集中的doc列进行后续处理

结合示例代码理解

你的SQL里,OPENROWSET把每行JSON读取为doc列的一条记录,外层SELECT通过JSON_VALUE(doc, '$.date_rep')这类函数,从每个doc字段的JSON字符串中提取需要的属性值。

内容的提问来源于stack exchange,提问作者Anubhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:50:22