标签: sql-server-2016

如何在系统版本的时态表中保留修饰符ID?

我在sql server 2016中有一个系统版本的表.我想在用户对表执行删除更新操作时在其时态(历史)表中存储修饰符ID .

sql server 2016 有没有内置的解决方案呢?

sql-server temporal sql-server-2016

7
推荐指数
1
解决办法
279
查看次数

使用FOR JSON子句获取多行

使用PostgreSQL我可以拥有多行json对象.

select (select ROW_TO_JSON(_) from (select c.name, c.age) as _) as jsonresult from employee as c
Run Code Online (Sandbox Code Playgroud)

这给了我这个结果:

{"age":65,"name":"NAME"}
{"age":21,"name":"SURNAME"}
Run Code Online (Sandbox Code Playgroud)

但是在SqlServer中,当我使用FOR JSON AUTO子句时,它为我提供了一个json对象数组,而不是多行.

select c.name, c.age from customer c FOR JSON AUTO

[{"age":65,"name":"NAME"},{"age":21,"name":"SURNAME"}]
Run Code Online (Sandbox Code Playgroud)

如何在SqlServer中获得相同的结果格式?

sql-server sql-server-2016

7
推荐指数
2
解决办法
8045
查看次数

T-SQL连续组合行

我有一个如下所示的表格.我想要的是彼此连续的行被组合在一起 - 对于每个"ID".列IsContinued标记下一行是否应与当前行组合

我的数据如下:

+-----+--------+-------------+-----------+----------+
| ID  | Period | IsContinued | StartDate | EndDate  |
+-----+--------+-------------+-----------+----------+
| 123 | 1      | 1           | 20180101  | 20180404 |
+-----+--------+-------------+-----------+----------+
| 123 | 2      | 1           | 20180501  | 20180910 |
+-----+--------+-------------+-----------+----------+
| 123 | 3      | 0           | 20181001  | 20181201 |
+-----+--------+-------------+-----------+----------+
| 123 | 4      | 1           | 20190105  | 20190228 |
+-----+--------+-------------+-----------+----------+
| 123 | 5      | 0           | 20190401  | 20190430 |
+-----+--------+-------------+-----------+----------+
| 456 | …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2016

7
推荐指数
1
解决办法
85
查看次数

如何将表转换为Json数组?

我正在使用Sql Server 2016,我想将表转换为json.

我有一个简单的表:

CREATE TABLE [dbo].[TableTmp](
    [Color] [nvarchar](50) NULL,
    [Type] [nvarchar](50) NULL,
    [Number] [nvarchar](50) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[TableTmp] ([Color], [Type], [Number]) VALUES (N'Blue', N'A', N'1')
GO
INSERT [dbo].[TableTmp] ([Color], [Type], [Number]) VALUES (N'Blue', N'A', N'2')
GO
INSERT [dbo].[TableTmp] ([Color], [Type], [Number]) VALUES (N'Blue', N'A', N'3')
GO
INSERT [dbo].[TableTmp] ([Color], [Type], [Number]) VALUES (N'Blue', N'B', N'1')
GO
INSERT [dbo].[TableTmp] ([Color], [Type], [Number]) VALUES (N'Blue', N'C', N'1')
GO
INSERT [dbo].[TableTmp] ([Color], [Type], [Number]) VALUES (N'Red', N'A', N'1')
GO …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server arrays json sql-server-2016

7
推荐指数
1
解决办法
349
查看次数

如何更新json对象中数组的特定项

我正在操作SQL Azure表/数据库中的JSON列,JSON对象形成如下:

{
  "statusId": "5A5BC717-F33A-42A5-8E48-99531C30EC87",
  "creationDateTime": "",
  "assignations": [
    {
      "userId": "CA3B0589-B558-4FCC-93A6-560754D324FC",
      "dateTime": "",
      "isCurrentAssigned": false
    },
    {
      "userId": "CA3B0589-B558-4FCC-93A6-560754D325E8",
      "dateTime": "",
      "isCurrentAssigned": false
    },
    {
      "userId": "CA3B0589-B558-4FCC-93A6-560754D347N",
      "dateTime": "",
      "isCurrentAssigned": true
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想要完成的是在数组"assignations"中找到一个特定的元素,然后更新它的一些属性,就像这样:

UPDATE MyTable
SET JsonData = JSON_MODIFY(JsonData, '$.assignations.isCurrentAssigned', CONVERT(BIT, 0))
FROM MyDb
WHERE JSON_VALUE(JsonData, '$.assignations.isCurrentAssigned') = CONVERT(BIT, 1) AND
JSON_VALUE(JsonData, '$.assignations.userId') =  CONVERT(UNIQUEIDENTIFIER, 'CA3B0589-B558-4FCC-93A6-560754D347N')
Run Code Online (Sandbox Code Playgroud)

当然这个T-SQL无法正常工作,我将不胜感激

t-sql sql-server-2016 azure-sql-database

6
推荐指数
1
解决办法
2646
查看次数

SQL Server 2016在JSON数组中选择位置

我有一个表[JsonTable],列[JsonData]保存json字符串,

JsonData像:

{
   "Names": ["John", "Joe", "Sam"]
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能像这样内部连接该表:

SELECT* FROM [TestTable] AS T
INNER JOIN [JsonTable] AS J ON T.[Name] IN JSON_QUERY(J.[JsonData], '$.Names')
Run Code Online (Sandbox Code Playgroud)

sql-server inner-join sql-server-2016 json-query

6
推荐指数
2
解决办法
2250
查看次数

如何为 JSON Auto 列名更改 SQL Server?

在此处输入图片说明 在这张图片中,结果列名(JSON_F52...) 是由 SQL Server 自动生成的。如何将此名称更改为唯一名称?

sql sql-server json sql-server-2016

6
推荐指数
1
解决办法
3233
查看次数

在 SQL Server 2016 中将 JSON 转换为表

我正在开发一个 Web 项目,其中客户端应用程序通过 JSON 与 DB 进行通信。

最初的实现发生在 SQL Server 2012(不支持 JSON,因此我们实现了一个处理解析的存储函数),现在我们正在移动到 2016(支持 JSON)。

到目前为止,我们显着减少了处理时间(在某些情况下,速度提高了 200 倍以上!)。

有一些交互包含需要转换为表的数组。为了实现这一点,该OPENJSON函数几乎可以满足我们的需求。

在其中一些(基于数组的)情况下,数组中的记录具有一个或多个也是 OBJECTS 的字段(在这种特殊情况下,也是数组),例如:

    [{
        "Formal_Round_Method": "Floor",
        "Public_Round_Method": "Closest",
        "Formal_Precision": "3",
        "Public_Precision": "3",
        "Formal_Significant_Digits": "3",
        "Public_Significant_Digits": "3",
        "General_Comment": [{
            "Timestamp": "2018-07-16 09:19",
            "From": "1",
            "Type": "Routine_Report",
            "Body": "[To + Media + What]: Comment 1",
            "$$hashKey": "object:1848"
        }, {
            "Timestamp": "2018-07-16 09:19",
            "From": "1",
            "Type": "User_Comment",
            "Body": "[]: Comment 2",
            "$$hashKey": "object:1857"
        }, {
            "Timestamp": "2018-07-16 09:19",
            "From": "1",
            "Type": …
Run Code Online (Sandbox Code Playgroud)

json sql-server-2016

6
推荐指数
1
解决办法
9734
查看次数

SQL Server 2016 SSMS Json 格式

我正在 SQL Server 2016 中的 SSMS 中使用 JSON。有什么办法可以解决 FOR JSON 语句的结果显示为 XML 列的问题?

是否有任何设置更改、附加组件、外部工具等,甚至是 hack 来减轻痛苦?

在我的理想世界中,单击 JSON 列(或 XML 列)将在我选择的文本编辑器中打开,例如 Visual Studio Code,SSMS 知道列中的字符串是 JSON 并将其保存到文件带有 .json 扩展名。

sql-server json ssms sql-server-2016 for-json

6
推荐指数
1
解决办法
2489
查看次数

生成分层数据的复杂递归 SQL

我正在尝试评估商店访客对 COVID-19 传播的影响。

这是一个简单的场景:

  1. 访客 A 走进商店,遇到了员工 1 @ Time = 0。
  2. 然后,访问者 A 在时间 = 1 时遇到了员工 2。
  3. 访客 B 走进商店并遇到 Employee1 @ Time = 1。
  4. VisitorB 然后遇到 Employee3 @ Time = 2。
  5. 访客A离开商店。

当我收集所有访问者数据以及他们在一段时间内遇到的人时,数据集如下所示:

visitorByEmployee

| VisitorID | EmployeeID | Contact           |
+-----------+------------+-------------------+
| 100       |   X123     | 3/11/2020 1:00    |
| 100       |   X124     | 3/11/2020 1:10    |
| 101       |   X123     | 3/12/2020 1:11    |
| 101       |   X125     | 3/11/2020 1:20    |
| …
Run Code Online (Sandbox Code Playgroud)

sql common-table-expression recursive-cte sql-server-2016

6
推荐指数
1
解决办法
96
查看次数