小编Din*_*hDB的帖子

SQL Server OPENJSON读取嵌套的json

我想在SQL Server 2016中解析一些json.有一个Projects-> Structures-> Properties的层次结构.我想编写一个解析整个层次结构的查询,但我不想按索引号指定任何元素,即我不想做这样的事情:

openjson (@json, '$[0]')
Run Code Online (Sandbox Code Playgroud)

要么

openjson (@json, '$.structures[0]')
Run Code Online (Sandbox Code Playgroud)

我有这个想法,我可以读取顶级项目对象的值以及表示它下面的结构的json字符串,然后可以单独解析.问题是以下代码不起作用:

declare @json nvarchar(max)
set @json = '
[
   {
      "IdProject":"97A76363-095D-4FAB-940E-9ED2722DBC47",
      "Name":"Test Project",
      "structures":[
         {
            "IdStructure":"CB0466F9-662F-412B-956A-7D164B5D358F",
            "IdProject":"97A76363-095D-4FAB-940E-9ED2722DBC47",
            "Name":"Test Structure",
            "BaseStructure":"Base Structure",
            "DatabaseSchema":"dbo",
            "properties":[
               {
                  "IdProperty":"618DC40B-4D04-4BF8-B1E6-12E13DDE86F4",
                  "IdStructure":"CB0466F9-662F-412B-956A-7D164B5D358F",
                  "Name":"Test Property 2",
                  "DataType":1,
                  "Precision":0,
                  "Scale":0,
                  "IsNullable":false,
                  "ObjectName":"Test Object",
                  "DefaultType":1,
                  "DefaultValue":""
               },
               {
                  "IdProperty":"FFF433EC-0BB5-41CD-8A71-B5F09B97C5FC",
                  "IdStructure":"CB0466F9-662F-412B-956A-7D164B5D358F",
                  "Name":"Test Property 1",
                  "DataType":1,
                  "Precision":0,
                  "Scale":0,
                  "IsNullable":false,
                  "ObjectName":"Test Object",
                  "DefaultType":1,
                  "DefaultValue":""
               }
            ]
         }
      ]
   }
]';

select IdProject, Name, structures
from   openjson (@json)
with
(
    IdProject …
Run Code Online (Sandbox Code Playgroud)

parsing json hierarchy sql-server-2016 open-json

28
推荐指数
3
解决办法
3万
查看次数

如何在SQL中获取当前日期时间?

想要current datetime插入lastModifiedTime列.我正在使用MySQL数据库.我的问题是:

  1. SQL中是否有可用的功能?要么

  2. 它是实现依赖所以每个数据库都有自己的功能吗?

  3. MySQL中可用的功能是什么?

sql database current-time

25
推荐指数
5
解决办法
11万
查看次数

将varchar值'simple'转换为数据类型int时转换失败

我在这个问题上苦苦挣扎了几天,我无法弄清楚如何解决这个问题.

我想group by我的价值表1,2,3,4,5所以我创建了一个临时表与此值.

现在,我必须INNER JOIN将此表与其他表一起使用a.value = #myTempTable.num.

但a.value就是ntext这样,我需要CONVERT它什么我实际上做了,但我得到一个错误:

将varchar值'simple'转换为数据类型int时转换失败.(第7行)

Create table #myTempTable
(
num int
)
insert into #myTempTable (num) values (1),(2),(3),(4),(5)

 SELECT a.name, CONVERT(INT, CONVERT(VARCHAR(12), a.value)) AS value, COUNT(*) AS pocet   
 FROM 
 (SELECT item.name, value.value 
  FROM mdl_feedback AS feedback 
  INNER JOIN mdl_feedback_item AS item 
       ON feedback.id = item.feedback
  INNER JOIN mdl_feedback_value AS value 
       ON item.id …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server group-by

24
推荐指数
3
解决办法
37万
查看次数

主要,唯一和外键约束和索引之间有什么区别?

是什么区别primary,unique并且foreign key constraints,和indexes?

我工作Oracle 10g和SQL Server 2008

database sql-server oracle indexing constraints

23
推荐指数
3
解决办法
12万
查看次数

如何在Create Table中创建非聚簇索引?

Create table FavoriteDish    
(    
FavID int identity (1,1) primary key not null,    
DishID int references Dishes(DishID) not null ,    
CelebrityName nvarchar(100)  nonclustered not null     
)
Run Code Online (Sandbox Code Playgroud)

这导致了

关键字'nonclustered'附近的语法不正确.

我提到了创建表语法的MSDN帮助.我不确定这里有什么不对.

sql-server sql-server-2008

18
推荐指数
2
解决办法
9万
查看次数

替代在MYSQL中的SubQuery中使用LIMIT关键字

我有一个表TEST与以下列:

code_ver (VARCHAR)
suite (VARCHAR)
date (DATE)
Run Code Online (Sandbox Code Playgroud)

现在我想选择10行,其中c的值不同ode_ver & code_ver NOT LIKE '%DevBld%' sorted by date desc.

所以我写了以下查询:

select * 
  from test 
 where code_ver IN (select DISTINCT code_ver 
                      from test 
                     where code_ver NOT LIKE '%DevBld%' 
                     ORDER by date DESC LIMIT 10);
Run Code Online (Sandbox Code Playgroud)

理想情况下,此查询应该可以正常工作,但我的MySQL版本说:

此版本的MySQL尚不支持'LIMIT&IN/ALL/ANY/SOME子查询'

有人可以建议我替代这个查询吗?

mysql sql database

18
推荐指数
4
解决办法
4万
查看次数

拆分逗号分隔字符串并插入表(int)

我有一个包含3列的表(First_ID,Second_ID,Third_ID)所有列都是int列.

现在我有3个值,第一个和第三个值是int值(1和0),第二个值是逗号分隔的字符串('188,189,190,191,192,193,194')

我应该如何填充表格,如下所示:

1   188 0
1   189 0
1   190 0
1   191 0
1   192 0
1   193 0
1   194 0
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的方法,但无法按照我的意愿使用它.

提前致谢

sql-server

18
推荐指数
3
解决办法
7万
查看次数

如何在SQL Server 2008中使用GUID数据类型?

我想使用构建一个员工表SQL SERVER 2008,在我的表中我希望为每个员工都有一个ID.

我听说过GUID,我有点理解它是一种数据类型,但我无法使用它

你能告诉我使用它的方法吗?

顺便说一下,我想说我想要这样的东西:

CREATE TABLE Employees (
ID guid PRIMARY KEY,
Name NVARCHAR(50) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

我该怎么做 ??因为我想从中受益,但我无法找到如何做到这一点

sql-server guid

16
推荐指数
3
解决办法
4万
查看次数

删除SQL Server中的重复记录

我编写了一个查询来删除表中的重复记录

;WITH a as
(
SELECT Firstname,ROW_NUMBER() OVER(PARTITION by Firstname, empID ORDER BY Firstname) 
AS duplicateRecCount
FROM dbo.tblEmployee
)
--Now Delete Duplicate Records
DELETE FROM tblEmployee
WHERE duplicateRecCount > 1 
Run Code Online (Sandbox Code Playgroud)

但我不知道我说错了

列名无效 duplicateRecCount

有人能帮我吗?

duplicates sql-server-2008-r2

15
推荐指数
2
解决办法
5万
查看次数

SQL将列数据类型从nvarchar更改为int

可以将字段的数据类型从nvarchar更改为int吗?

alter table employee alter column designation int
Run Code Online (Sandbox Code Playgroud)

这有效吗?如果不能以其他方式完成?

PS:我正在使用 MS SQL Server

sql-server alter-table type-conversion

13
推荐指数
3
解决办法
8万
查看次数