小编Jul*_*eur的帖子

是否可以在 SQLite 中存储和查询 JSON?

我需要将 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。

我知道我的问题很具体,但你能帮我吗?

sqlite json

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

如果为正,则对所有项目求和。如果为负,则返回每一个

我需要找到一种方法来获取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-2008 sql-server t-sql

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

是否从 SQL Server 2016 安装介质中删除了 Management Studio?

我刚刚尝试安装 SQL Server 2016 Enterprise,但我注意到默认情况下未安装 Management Studio。我还注意到安装指南中有一个指向 SSMS 的单独链接,指向https://msdn.microsoft.com/en-us/library/mt238290.aspx

这个决定的原因是什么?

在上面的 URL 中注明以下内容:

这个普遍可用的 SSMS 版本是免费的,安装和使用不需要 SQL Server 许可证。

或许,就是这样?

sql-server ssms

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

Mac 上的 SQL Server

可以在 OS X 上安装 SQL Server 引擎快速版吗?我在家里使用 MacBook,并希望将其用作 SQL Server 的测试/学习平台。

sql-server mac-os-x

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

sp_procedure_params_90_rowset 上的过度编译阻塞

这个问题在 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)

sql-server-2008-r2 blocking

15
推荐指数
1
解决办法
1534
查看次数

根据其他 3 列组合的重复值,获取一列具有不同值的行

我想根据具有其他 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 t-sql distinct

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

查找访问特定 SQL Server 的所有 IP 或用户

假设我找到了一个 SQL Server,但我不知道哪些应用程序连接到它。也许我找到了一个应用程序,但我不确定它是否是唯一一个使用它的应用程序。

有没有找到所有不同连接的好方法?

sql-server sql-server-2012 troubleshooting connections

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

选择按值均匀分布的分组数据

我想将表中的数据选择为 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)

sql-server t-sql sql-server-2012

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

选择满足组条件的行(无临时表)

有 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 group-by

10
推荐指数
1
解决办法
2万
查看次数

SQL Server 见证的版本是否重要?

是否可以在具有比镜像更高 SQL Server 版本的镜像设置中拥有 SQL Server 见证?

IE。镜像在 SQL Server 2012 Standard 上,见证使用 SQL Server 2014 Express。

sql-server

8
推荐指数
1
解决办法
2176
查看次数