我需要将 JSON 对象存储在 SQLite 数据库中,然后对其进行复杂的查询。
我做了一个这样的表:
+--------------------------------------+
|document | property | string | number|
+--------------------------------------+
|foo | "title" | "test" | |
+--------------------------------------+
|foo | "id" | | 42 |
+--------------------------------------+
|bar | "id" | | 43 |
+--------------------------------------+
Run Code Online (Sandbox Code Playgroud)
对于两个对象
foo {"title": "test", "id": 42}
bar {id: 43}
Run Code Online (Sandbox Code Playgroud)
但我不能做“AND”查询,比如:
SELECT DISTINCT id FROM table WHERE title = "test" AND id = 42
Run Code Online (Sandbox Code Playgroud)
如您所见,“WHERE”之后的部分完全是胡说八道,但我不知道如何创建一个可以做我想做的查询。
那么您认为有更好的方法来存储我的数据,还是有一种解决方法来执行“AND”查询?
当然,JSON 可以包含任何属性,因此我无法为每个属性创建一个包含列的表。
我正在使用 WebSQL,它是没有扩展的 SQLite。
我知道我的问题很具体,但你能帮我吗?
我需要找到一种方法来获取SUM()所有正值的所有正值num并返回SUM()所有正数的值和每个负数的单独行。下面是一个示例 DDL:
Create Table #Be
(
id int
, salesid int
, num decimal(16,4)
)
Insert Into #BE Values
(1, 1, 12.32), (2, 1, -13.00), (3, 1, 14.00)
, (4, 2, 12.12), (5, 2, 14.00), (6, 2, 21.23)
, (7, 3, -12.32), (8,3, -43.23), (9, 3, -2.32)
Run Code Online (Sandbox Code Playgroud)
这是我想要的输出(每个 salesid 的正数SUM()和负数得到单独的一行返回):
salesid num
1 26.32
1 -13.00
2 47.35
3 -12.32
3 -43.23
3 -2.32
Run Code Online (Sandbox Code Playgroud) 我刚刚尝试安装 SQL Server 2016 Enterprise,但我注意到默认情况下未安装 Management Studio。我还注意到安装指南中有一个指向 SSMS 的单独链接,指向https://msdn.microsoft.com/en-us/library/mt238290.aspx
这个决定的原因是什么?
在上面的 URL 中注明以下内容:
这个普遍可用的 SSMS 版本是免费的,安装和使用不需要 SQL Server 许可证。
或许,就是这样?
可以在 OS X 上安装 SQL Server 引擎快速版吗?我在家里使用 MacBook,并希望将其用作 SQL Server 的测试/学习平台。
这个问题在 MSDN 上再次出现:Blocked-process-report: what is this waitresource "OBJECT: 32767:124607697:0 [COMPILE]"
我在 Profiler 中发现了这些语句。它们的持续时间都超过 3 秒。一些超过 10+。阻止活动与来自MSDN的链接相同。
调用都使用 3 部分命名。都指定了一个不同的过程,它们看起来像下面这样:
exec [db1].[sys].sp_procedure_params_90_rowset N'proc1', 1, NULL, NULL
exec [db2].[sys].sp_procedure_params_90_rowset N'proc2', 1, NULL, NULL
exec [db3].[sys].sp_procedure_params_90_rowset N'proc3', 1, NULL, NULL
exec [db4].[sys].sp_procedure_params_90_rowset N'proc4', 1, NULL, NULL
Run Code Online (Sandbox Code Playgroud)
我可以做些什么来减少这种级别的阻塞?
(编辑)我现在看到同样的事情:
exec [db1].[sys].sp_primary_keys_rowset N'view1', N'dbo'
exec [db2].[sys].sp_primary_keys_rowset N'view1', N'dbo'
exec [db3].[sys].sp_primary_keys_rowset N'view1', N'dbo'
exec [db4].[sys].sp_primary_keys_rowset N'view1', N'dbo'
Run Code Online (Sandbox Code Playgroud)
有系统性的事情正在发生,但我不知道还能做什么。调用者是通过 ADO 的 VB6。是 ADO 进行这些调用。
下面是一个被阻止的进程报告示例
<blocked-process-report>
<blocked-process>
<process
id="process5bc1288"
taskpriority="0"
logused="0"
waitresource="OBJECT: 32767:124607697:0 [COMPILE]" …Run Code Online (Sandbox Code Playgroud) 我想根据具有其他 3 列的唯一组合的重复行,仅获取列(列名 DEF)中具有不同值的行。
示例:在下面的示例中,前两行的前 3 列具有相同的值。但它们的列 DEF 具有不同的值。所以这两行都列在输出中。
但是第 2 行和第 4 行的前 3 列具有唯一组合,但它们在 DEF 列中具有相同的值。因此不会在输出中列出。
不会列出第 5 行和第 6 行,因为它们是具有不同值的单行。
+----------+-------+--------+--------+
| dept | role1 |role2 |DEF |
+----------+-------+--------+--------+
| a | abc | er | 0 |
| a | abc | er | 1 |
| b | qwer | ty | 0 |
| b | qwer | ty | 0 |
| c | der | ui | 1 |
| d | …Run Code Online (Sandbox Code Playgroud) 假设我找到了一个 SQL Server,但我不知道哪些应用程序连接到它。也许我找到了一个应用程序,但我不确定它是否是唯一一个使用它的应用程序。
有没有找到所有不同连接的好方法?
我想将表中的数据选择为 4 组,该表具有尽可能均匀分布的组中值的总和。我敢肯定我解释得不够清楚,所以我会尝试举一个例子。
这里我使用 NTILE(4) 创建 4 个组:
SELECT Time, NTILE(4) OVER (ORDER BY Time DESC) AS N FROM TableX
Time - N
-------------
10 - 1
9 - 2
8 - 3
7 - 4
6 - 1
5 - 2
4 - 3
3 - 4
2 - 1
1 - 2
Run Code Online (Sandbox Code Playgroud)
在上面的查询和结果中,为简洁起见,省略了其他列。
所以你也可以看到这些组如下:
1 2 3 4
--- --- --- ---
10 9 8 7
6 5 4 3
2 1
--- --- --- ---
18 15 …Run Code Online (Sandbox Code Playgroud) 有 3 列的表:
ID category flag
1 A 1
2 A 0
3 A 0
4 B 0
5 C 0
Run Code Online (Sandbox Code Playgroud)
我想选择flag = 1每个类别至少有一次的所有行。
预期成绩:
ID category flag
1 A 1
2 A 0
3 A 0
Run Code Online (Sandbox Code Playgroud)
可以使用这样的临时表来解决:
select ID into #tempTable from someTable where flag = 1
select * from someTable join #tempTable on someTable.ID = #tempTable.ID
Run Code Online (Sandbox Code Playgroud)
但我更喜欢分组的解决方案,我很难想出。任何帮助将不胜感激。
是否可以在具有比镜像更高 SQL Server 版本的镜像设置中拥有 SQL Server 见证?
IE。镜像在 SQL Server 2012 Standard 上,见证使用 SQL Server 2014 Express。
sql-server ×8
t-sql ×3
blocking ×1
connections ×1
distinct ×1
group-by ×1
json ×1
mac-os-x ×1
sqlite ×1
ssms ×1