首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用大小写区分的SQL计数:如何在不使用exists的情况下进行子查询?

用大小写区分的SQL计数:如何在不使用exists的情况下进行子查询?
EN

Stack Overflow用户
提问于 2022-05-02 00:23:15
回答 1查看 161关注 0票数 0

上下文: Server中的有一个很大的XLSX文件,我正在映射到一个文件。每次都会有一个名为'referentie‘的列获得不同的值。我需要计数唯一的值,并显示相应的代码。(请注意,这是一个较大SELECT语句中的子查询。我无法添加额外的聚合函数。)

  1. 我需要计算JSON数组输入的唯一值(输出是XML)。(已完成)
  2. 根据检索到的唯一计数(问题)显示值

问题:在查询中,您将看到有多个计数不同的情况。SQL抛出正常的错误:

Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

My查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(SELECT COUNT(DISTINCT CASE WHEN Referentie > 10 THEN N'CON1' END) AS [HEADER/CHECK],
                        COUNT(DISTINCT CASE WHEN Referentie <= 10 AND Referentie > 29 THEN N'CON2' END) AS [HEADER/CHECK],
                        COUNT(DISTINCT CASE WHEN Referentie <= 30 AND Referentie >= 50 THEN N'CON3' END) AS [HEADER/CHECK],
                        COUNT(DISTINCT CASE WHEN Referentie <= 50 AND Referentie >= 500 THEN N'CON4' END) AS [HEADER/CHECK]
                FROM OPENJSON(@Json, N'$.Blad1')
                WITH (Referentie nvarchar(100) N'$.Referentie')) AS [HEADER/CHECK],

问题:

  • 这里正确的语法是什么使我的逻辑工作?

文件中的JSON :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Json = N'{
   "Blad1":[
      {
         removed
      }
   ]
}'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-02 02:58:18

首先,你对你想要达到的目标有些不清楚。您说您正在设法计算唯一值,但不显示依赖于此的值。

你的代码甚至不能处理这个。它实际上所做的是检查Referentie是否在定义的数字内(因为它是一个字符串而没有任何意义),然后与单个字符串区分开来。然后,它多次返回这个参数,每个参数都返回一次。

相反,您需要一个单独的COUNT (DISTINCT Referentie),它的周围有一个CASE来检查它的大小。

当前代码还有另一个问题。><的条件是相反的。< 29应该是< 30

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT
  'SomeValue' AS xyz,
  (
    SELECT
      CASE 
        WHEN COUNT(DISTINCT Referentie) < 10
          THEN N'CON1'
        WHEN COUNT(DISTINCT Referentie) >= 10 AND COUNT(DISTINCT Referentie) < 29
          THEN N'CON2'
        WHEN COUNT(DISTINCT Referentie) >= 30 AND COUNT(DISTINCT Referentie) <= 50
          THEN N'CON3'
        WHEN COUNT(DISTINCT Referentie) >= 50 AND COUNT(DISTINCT Referentie) <= 500
          THEN N'CON4'
      END
    FROM OPENJSON(@Json, N'$.Blad1')
      WITH (
        Referentie nvarchar(100)
      ) AS j
  ) AS [HEADER/CHECK]
FROM (VALUES(0)) DummyTable(DummyValue)   -- don't know what the rest of your query is
FOR XML PATH(N''), ROOT(N'rootElement'),TYPE

db<>fiddle

另外,如果您确实希望从子查询中获得多个列,则需要将其放置在APPLY中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72084085

复制
相关文章
视频转码加密 一直失败找不到原因 ,请求帮忙
$arr = array( 'Action' => 'ProcessFile', 'fileId' => $fileid, 'notifyMode'=>'Finish', 'transcode.definition.0'=>'210', 'transcode.definition.1'=>'220', 'transcode.definition.2'=>'230', 'transcode.drm.definition'=>10, 'Nonce'
用户1226609
2019/01/25
1.2K1
OpenProcessToken函数 何时会失败「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。 OpenProcessToken函数的功能是打开一个与一进程相联系的访问令牌(access token),它的原型如下: BOOL OpenProcessToken( HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle ); 如同MSDN上所说,对于Windows XP Professional,如果一台计算机加入到一个工作组中,而且”Force network logons using local accounts to authenticate as Guest”的限制被激活的话,此函数会失败。 另外,如果在调用的时候使用了TOKEN_ALL_ACCESS请求,函数也可能会失败。这是因为TOKEN_ALL_ACCESS可能包含了 TOKEN_ADJUST_SESSIONID(在Winnt.h中被定义)。TOKEN_ADJUST_SESSIONID是一个新的访问mask,是在Windows 2000和Windows XP中新增的。在Windows NT 4.0中,访问令牌的访问控制列表中是没有这个值的。所以,如果一个应用程序是使用新的Platform SDK中的Winnt.h但却在Windows NT 4.0下运行的话,在调用OpenProcessToken()或者OpenThreadToken时指定了TOKEN_ALL_ACCESS的话,函数也会失败(使用GetLastError()返回的是ERROR_ACCESS_DENIED)。
全栈程序员站长
2022/09/12
4640
在 Laravel 控制器中进行表单请求字段验证
在 Web 应用中,用户提交的数据往往是不可预测的,因此一个非常常见的需求是对用户提交的表单请求进行验证,以确保用户输入的是我们所期望的数据格式。很多 Web 框架都对此功能专门提供了工具集,Laravel 也不例外,而且这个工具集异常丰富,基本上涵盖了目前主流的所有验证规则,即使是一些非常个性化的验证,也可以基于 Laravel 验证类的扩展功能来自定义验证规则,非常强大。接下来,我们就一起来看看如何在 Laravel 中对表单请求进行验证。
学院君
2021/01/08
5.8K0
(三)请求失败重发
有时候网络不好导致请求失败不能一次失败就给请求判定死刑了,我们还要给他机会,下面手写封装一个简单的重发函数,灰常的实用
老怪兽
2023/02/22
4370
(三)请求失败重发
k3s原理分析丨如何搞定k3s node注册失败问题
面向边缘的轻量级K8S发行版k3s于去年2月底发布后,备受关注,在发布后的10个月时间里,Github Star达11,000颗。于去年11月中旬已经GA。但正如你所知,没有一个产品是十全十美的,k3s在客户落地实践的过程中也暴露过一些不足。在k3s技术团队的专业技术支持下,许多问题得到了改善和解决。
k3s中文社区
2020/03/05
3.4K0
k3s原理分析丨如何搞定k3s node注册失败问题
为什么 WPF 软件在 win7 启动时会尝试调起 wisptis 进程
我看到一个问题是在 win7 系统上,如果开机启动的软件是 WPF 软件,而这个 WPF 软件在系统的 wisptis 进程启动之前就启动了,那么 WPF 将会调起 wisptis 进程。而在 wisptis 进程已经启动完成,此时启动 WPF 进程不会再打开新的 wisptis 进程。但是被 WPF 启动的 wisptis 进程存在这样的问题,在触摸屏上 win7 的双指打开右键菜单等功能不可用
林德熙
2020/02/17
9040
win10 uwp 在 VisualStudio 部署失败,找不到 Windows Phone 可能的原因
在我使用 VisualStudio 调试的时候,发现我插入了手机,但是 VisualStudio 在部署的时候找不到手机。 可能的原因是 手机禁用了连接,第二个原因是可能手机驱动没正确让 VisualStudio 找到手机
林德熙
2022/08/04
5940
为什么互联网外企在中国总是失败?
最近在读吴晓波写的《腾讯传》,不少有意思的内容。其中给我印象最深的是讲当年 QQ 和 MSN 大战的一段。可能很多人和我一样,都注意到,互联网行业中,在中国的外企鲜有成功的,多数都是高调进入,灰溜溜地退出。有人把这种现象简单地归因于四个字 “水土不服”,无疑是武断而缺乏思考的。
四火
2022/07/19
6190
面试官:为什么 HashMap 并发时会引起死循环?
今天研读 Java 并发容器和框架时,看到为什么要使用 ConcurrentHashMap 时,其中有一个原因是:线程不安全的HashMap, HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表形成环形数据结构,查找时会陷入死循环。
终码一生
2022/04/14
3630
面试官:为什么 HashMap 并发时会引起死循环?
请求服务失败问题分析过程
本文描述在测试环境讲述客户端在测试环境请求服务端都正常,但是在线上环境客户端访问一模一样的服务器失败的问题分析过程。
用户5521279
2020/03/19
1.5K0
请求服务失败问题分析过程
yii2 在控制器中验证请求参数的使用方法
针对每个请求单独写个Model , 定义验证规则并进行验证。 缺点:写好多参数验证的Model 类。
用户7353560
2021/11/07
3.7K0
简评 WhereHows 为什么失败
DataHub 是由领英的数据团队开源的一款提供元数据搜索与发现的工具。现在的 DataHub 是由 WhereHows 演变过来的。
哒呵呵
2021/12/18
9180
简评 WhereHows 为什么失败
为什么 demangle 会失败?
本周有位网友在交流群提到“为什么无法在自己的电脑中通过 c++filt 解析符号 _ZN5folly6detail15str_to_integralIxEENS_8ExpectedIT_NS_14ConversionCodeEEEPNS_5RangeIPKcEE ?”
酷酷的哀殿
2020/10/26
1.2K0
为什么 demangle 会失败?
Remote Desktop Services启动失败找不到指定的模块
Windows无法远程连接,排查发现是因为 Remote Desktop Services 无法启动 Remote DEsktop services 错误2,找不到指定的模块 (Windows 2016中为错误126,找不到指定的模块)
大大大黑白格子
2020/06/10
8.7K0
Ubuntu 桌面系统升级
之前在学习 ROS2 时,安装 ros-humble-desktop 出现依赖错误:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
桑榆肖物
2023/01/03
3.7K0
Ubuntu 桌面系统升级
codeblocks文件读取之后,在输出中文时会乱码
本来没打算写这个文,但是帮助我的大佬说可以写,正好也帮助一下可能出现这个问题的小可爱们
阿湫
2019/11/30
2.3K0
codeblocks文件读取之后,在输出中文时会乱码
多种边缘集群管理方案对比选型(文末送书)
边缘计算平台,旨在将边缘端靠近数据源的计算单元纳入到中心云,实现集中管理,将云服务部署其上,及时响应终端请求。然而,成千上万的边缘节点散布于各地,例如银行网点、车载节点、加油站等基于一些边缘设备管理场景,服务器分散在不同城市,无法统一管理,为了优化集群部署以及统一管理,特探索边缘计算场景方案。
没有故事的陈师傅
2021/10/20
1.4K0
小程序Android可以请求,ios请求失败wx.request
判断是SSL证书有问题,但证书状态完全正常,小程序后台的安全域名也添加的没问题,最后解决办法是:换了一家SSL证书,并重启Nginx
用户5875349
2020/07/23
2.7K1
小程序Android可以请求,ios请求失败wx.request
在K3s上使用Kong网关插件,开启K3s的无限可能!
我的工作中很重要的一部分是参加各种各样的技术会议。最近参加的是去年11月的北美KubeCon,在会议的最后一天,所有人都焦头烂额,我也一直机械地向不同的人重复我的自我介绍。后来,我已经十分烦躁,决定逃离人群好好听一场演讲。无意间,我碰上了Darren Shepherd的演讲,他是Rancher的CTO,他的演讲主题是“K3s的背后:构建一个生产级轻量Kubernetes发行版”。我被演讲深深吸引,此后我开始慢慢深入了解K3s。
k3s中文社区
2020/08/14
1.5K0
在K3s上使用Kong网关插件,开启K3s的无限可能!
点击加载更多

相似问题

SQL Server 2008中的多维数据集设计

111

Server分析服务(SSAS):多维数据集开发

11

SQL Server OLAP多维数据集(教程)

12

多维数据集设计问题- SQL Server

10

如何在SQL Server2008中动态创建列?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文