我有以下查询,与使用 = 相比,使用 != (或 <>)时其工作方式有所不同。
我尝试使用的示例的工作原理如下。
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 与子选择一起使用来解决了这个问题,但最初的问题仍然存在。
我将此 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 必须是字符串文字
请注意,这不是重复的,因为我已经在下面提到了问题,但仍然没有得到解决方案。
我正在使用SQL Server 2016并遇到了isnull函数的问题.该字段中的值是一个空格但仍然被选中,下面是我的代码:
SELECT * FROM table
WHERE isnull (field1,'')<>''
AND field1<>' '
Run Code Online (Sandbox Code Playgroud)
如果我从field1复制并粘贴,它就是一个空格''.
谢谢
如何将逗号分隔值转换为:
桌子
User Name Unit
ABC 2,3
Run Code Online (Sandbox Code Playgroud)
到以下:
User Name Unit
ABC 2
ABC 3
Run Code Online (Sandbox Code Playgroud) 下面的查询返回多行,如下图所示.
我想知道如何只返回一行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命令问题出在哪里?
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)