我想在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) 想要current datetime插入lastModifiedTime列.我正在使用MySQL数据库.我的问题是:
SQL中是否有可用的功能?要么
它是实现依赖所以每个数据库都有自己的功能吗?
MySQL中可用的功能是什么?
我在这个问题上苦苦挣扎了几天,我无法弄清楚如何解决这个问题.
我想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) 是什么区别primary,unique并且foreign key constraints,和indexes?
我工作Oracle 10g和SQL Server 2008
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帮助.我不确定这里有什么不对.
我有一个表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子查询'
有人可以建议我替代这个查询吗?
我有一个包含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 2008,在我的表中我希望为每个员工都有一个ID.
我听说过GUID,我有点理解它是一种数据类型,但我无法使用它
你能告诉我使用它的方法吗?
顺便说一下,我想说我想要这样的东西:
CREATE TABLE Employees (
ID guid PRIMARY KEY,
Name NVARCHAR(50) NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
我该怎么做 ??因为我想从中受益,但我无法找到如何做到这一点
我编写了一个查询来删除表中的重复记录
;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
有人能帮我吗?
可以将字段的数据类型从nvarchar更改为int吗?
alter table employee alter column designation int
Run Code Online (Sandbox Code Playgroud)
这有效吗?如果不能以其他方式完成?
PS:我正在使用 MS SQL Server
sql-server ×6
database ×3
sql ×3
alter-table ×1
constraints ×1
current-time ×1
duplicates ×1
group-by ×1
guid ×1
hierarchy ×1
indexing ×1
json ×1
mysql ×1
open-json ×1
oracle ×1
parsing ×1
t-sql ×1