标签: sql-server-2016

SQL where NOT EQUAL TO 未按预期工作 - SQL Server 2016

我有以下查询,与使用 = 相比,使用 != (或 <>)时其工作方式有所不同。

我尝试使用的示例的工作原理如下。

SELECT COUNT(*) FROM table1 
Run Code Online (Sandbox Code Playgroud)

返回100

SELECT COUNT(*) 
FROM table1 
WHERE year = '2017/2018' AND SOURCE = 'CSV'
Run Code Online (Sandbox Code Playgroud)

返回30

那么为什么下面的代码不会返回70的计数呢?

SELECT COUNT(*) 
FROM table1 
WHERE year != '2017/2018' AND SOURCE != 'CSV'
Run Code Online (Sandbox Code Playgroud)

当更新为 != 时,它似乎将其视为 OR 而不是 AND,我正在努力找出原因。我通过更改查询以将 NOT EXISTS 与子选择一起使用来解决了这个问题,但最初的问题仍然存在。

sql sql-server-2016

-1
推荐指数
1
解决办法
121
查看次数

“JSON_VALUE 或 JSON_QUERY”的参数 2 必须是字符串文字

我将此 JSON 传递给 SQL Server 中的存储过程

{
    "individual": [
        {
            "app_id": 1057029,
            "size": 2
        },
        {
            "app_id": 1057053,
            "size": 3
        },
        {
            "app_id": 1057048,
            "size": 1
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

在存储过程中,我提取app_id和的值size,如下所示

SET @len = JSON_VALUE(@json, CONCAT('$.individual[', @i, '].size'));
SET @appId = JSON_VALUE(@json, CONCAT('$.individual[', @i, '].app_id'));
Run Code Online (Sandbox Code Playgroud)

(这里i是索引变量在循环中递增)

这在 Microsoft SQL Server 2017(版本 14.0.1000.169)上完美运行

但在 Microsoft SQL Server 2016(版本 13.0.4604.0)上,我收到错误:

JSON_Value 错误:“JSON_VALUE 或 JSON_QUERY”的参数 2 必须是字符串文字

请注意,这不是重复的,因为我已经在下面提到了问题,但仍然没有得到解决方案。

JSON_Value 错误:“JSON_VALUE 或 JSON_QUERY”的参数 2 必须是字符串文字

SQL Sever 2016 - …

sql-server json sql-server-2016 json-value

-1
推荐指数
1
解决办法
1101
查看次数

SQL Isnull不起作用,即使它是一个空格也返回一个值

我正在使用SQL Server 2016并遇到了isnull函数的问题.该字段中的值是一个空格但仍然被选中,下面是我的代码:

SELECT * FROM table
WHERE  isnull (field1,'')<>''
       AND field1<>' '
Run Code Online (Sandbox Code Playgroud)

如果我从field1复制并粘贴,它就是一个空格''.

谢谢

sql sql-server sql-server-2016

-2
推荐指数
1
解决办法
480
查看次数

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

SQL选择所有列只返回MAX seqno

下面的查询返回多行,如下图所示.

我想知道如何只返回一行MAX seqno.另请注意,我想在此处返回表中的所有列.

感谢你的帮助.

SELECT * 
FROM dbo.SALESORD_HDR HD 
JOIN dbo.SALESORDHIST AS HI ON HD.SEQNO = HI.HEADER_SOURCE_SEQ
                            AND hi.FILEURL <> '' 
                            AND HI.EVENT_TYPE='D'
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

sql t-sql sql-server sql-server-2016

-2
推荐指数
1
解决办法
94
查看次数

如何在 SQL 中格式化货币值

我的sql命令问题出在哪里?

select REPLACE(CONVERT(varchar, CAST(price AS money), 1),'.','.') as price
Run Code Online (Sandbox Code Playgroud)

输出 :

price
-----
145,000,00
Run Code Online (Sandbox Code Playgroud)

我想要这样的输出

price
-----
145.000,00
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2016

-4
推荐指数
1
解决办法
9811
查看次数