Oracle LISTAGG() 用于查询使用

2023-12-08

所以我试图利用列表()函数来简单地构建一个逗号分隔列表以在基础查询中使用。列表生成工作正常,我只是应用了一个用于调试目的的输出,我可以在其中看到我的列表,因为它应该是:

价值观: 'AB','AZ','BC','CA','CT','DC','FL','FO','GA','IL','KS','MA','MB ','ME','MN','MS','MT','NB','NC','NL','NOVA 斯科舍省'、'NS'、'NT'、'NU'、'NY'、'ON'、'安大略省'、'OR'、'PE'、'QC'、'魁北克'、'魁北克'、'萨斯喀彻温省' ,'SK','TX','VT','WA','YT'

当我尝试将此列表变量传递给我的查询时,只是为了查看是否会返回任何内容,则什么也不会返回,但是如果我从上面复制/过去省份/州列表(按原样),而不是在我的查询中使用“v_Province” where 子句,我得到一个结果。我究竟做错了什么?

  DECLARE
     v_PROVINCE varchar2(500);
     v_results varchar2(1000);
  BEGIn
        dbms_output.enable(1000000);  

       Select '''' || LISTAGG(STATE, ''',''') WITHIN GROUP (ORDER BY STATE) || '''' PROV 
       INTO v_PROVINCE
       from (Select distinct STATE from ADDRDATA where STATE IS NOT NULL);

   DBMS_OUTPUT.PUT_LINE('VALUES: ' || v_PROVINCE);

   Select CITY
   INTO v_results
   from VWPERSONPRIMARYADDRESS
   where state in (v_Province)
   AND ROWNUM <= 1;

   DBMS_OUTPUT.PUT_LINE(v_results);


  END;
  /

首先,如果可能的话,在单个语句中完成所有操作几乎总是更有效。

您的第二个查询不起作用,因为您将所有内容返回到单个字符串中。这是notIN 语句所需的逗号分隔列表。

不过,有一个小技巧可以解决这个问题。假设您正在使用字符串来表示两个 SELECT 语句之间的内容,您可以使用它regexp_substr()将你的字符串变成可用的东西。

像这样的东西会起作用;

select city
  from vwpersonprimaryaddress
 where state in ( 
           select regexp_substr(v_province,'[^'',]+', 1, level) 
             from dual
          connect by regexp_substr(v_province, '[^'',]+', 1, level) is not null
                  )

变量v_province例如,必须更改为引用两次'''AB'',''AZ'',''BC'''为了使其发挥作用。

这是一个工作示例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle LISTAGG() 用于查询使用 的相关文章

  • 查询以查找平均加权价格

    我在 Oracle 中有一个表 每个给定部分包含多行 每行都有一个与其关联的数量和价格 还有一个给定零件的行集相加的总数量 以下是数据示例 我需要的是获得该零件的平均加权价格 例如 如果数量为 100 的零件的价格为 1 数量为 50 的零
  • 在 SQL 中搜索 XML 列

    我有一个 XML 文档来存储 Oracle 数据库中的记录 表 CourseXML 将包含 Record Number int XML Type int XMLDoc clob etc 我想通过 XML 标签在 XMLDoc 列中进行搜索
  • 使用 Oracle Wallet 身份验证从 Spring-jdbc 连接到 Oracle DB

    我将 Spring jdbc 与 org apache commons dbcp BasicDataSource 结合使用 使用用户名和密码进行连接 我想使用BasicDataSource 因为我只有一个连接 我有这个代码
  • 在仅具有两种类型值的列上创建索引有多有效

    我在列上创建了一个索引 该列只有两个可能的值 Y 和 N 两个值的数据类型相同 假设列名称是指示符 我写了一个选择语句 例如 SELECT INDICATOR FROM TEMP TABLE ORDER BY INDICATOR 当我在 S
  • 如何使 cx-oracle 将查询结果绑定到字典而不是元组?

    这是我的代码 我想找到一种方法将查询结果作为字典列表而不是元组列表返回 看起来 cx oracle 通过部分文档讨论 绑定 来支持这一点 虽然我不知道它是如何工作的 def connect dsn cx Oracle makedsn hos
  • 从 Oracle 获取包方法和参数

    我正在寻找 Oracle 查询来获取 Oracle 包 过程的所有参数 我知道有一个视图或表可以提供此功能 但我似乎不记得它是什么 注意 我并不是要从 user objects 获取包列表 而是要获取包 中每个过程的数据类型和参数名称 Th
  • 水晶报表参数选择有限制吗?

    我正在尝试根据按用户分组的 Oracle 数据库制作 Crystal Reports 11 报告 我有超过一千个用户 我想创建一个参数字段 提示用户选择他们想要查看其结果的用户 但是我的参数选择字段仅显示 221 个可能的用户 由于 SQL
  • 将 MS SQL Server 数据库连接到 Oracle 11g 数据库

    我正在努力创建从 Oracle 数据库到一个 SQL Server 的数据库链接 为此 我添加了以下内容 In file tnsnames ora sqlUserConn DESCRIPTION ADDRESS PROTOCOL tcp H
  • 跨数据库管理系统检查字符串是否为数字的方法

    好的 我有这个字段 code varchar 255 它包含我们导出例程中使用的一些值 例如 DB84 DB34 3567 3568 我需要仅选择自动生成的 全数字 字段 WHERE is numeric table code is num
  • Oracle 时间戳数据类型

    不带参数的时间戳数据类型和带参数 0 的时间戳数据类型有什么不同 timestamp VS timestamp 0 括号中的数字指定要存储的小数秒的精度 所以 0 意味着不存储任何一小部分秒 而仅使用整秒 如果未指定 则默认值为小数点分隔符
  • 如何捕获 PL/SQL 块中的唯一约束错误?

    假设我有一个 Oracle PL SQL 块 它将一条记录插入表中 并且需要从唯一约束错误中恢复 如下所示 begin insert into some table some values exception when update som
  • Oracle SQL 查询日期格式

    我总是对 ORACLE SQL 查询中的日期格式感到困惑 并花几分钟时间去谷歌 有人可以向我解释当数据库表中有不同格式的日期时解决问题的最简单方法吗 例如 我有一个日期列为 ES DATE 保存的数据为 27 APR 12 11 52 48
  • 如何在 Pro*C 查询中指定变量表达式列表?

    我尝试优化的 Pro C 查询出现问题 解释一下 我们的应用程序在一个巨大的数据库中搜索行 这些行存在于多种语言中 旧代码为数组中的每种语言选择一行 现在 由于这些查询是我们应用程序中最耗时的部分 因此我只想进行一个直接写入数组的查询 语言
  • DBMS_SCHEDULER.DROP_JOB 仅当存在时

    我有一个 sql 脚本 在导入转储后必须运行该脚本 该脚本除了执行其他操作外 还执行以下操作 BEGIN remove program SYS DBMS SCHEDULER DROP PROGRAM program name gt STAT
  • 从 CTE 插入

    WITH DTL AS SELECT CMPI CODE CMN CDTY MTRL CMI WT FACTOR CMI CNTRCT RATE PL PRESENT PRICE TRM CODE ROUND NVL PRESENT PRI
  • oracle lag 函数与 group by

    我有一个查询忽略从前一个值增加的值 例如 采用下表 col1 col2 col3 5 1 A 4 2 A 6 3 A 9 4 B 8 5 B 10 6 B 现在进行以下查询 select col1 from select col1 lag
  • Postgresql存储过程中基于会话的全局变量?

    在 Oracle 的 PL SQL 中 我可以使用包定义创建基于会话的全局变量 对于 Postgresql 的 PLpg SQL 这似乎是不可能的 因为没有包 只有独立的过程和函数 以下是 PL SQL 将 g spool key 声明为全
  • 创建和删除表空间 Oracle

    我已经创建了这个表空间 CREATE TABLESPACE IA643 TBS DATAFILE IA643 dat SIZE 500K AUTOEXTEND ON NEXT 300K MAXSIZE 100M 我尝试使用此命令删除它 DR
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 如何使用 JSON_TABLE 从 Oracle JSON 列获取键值作为结果集

    我用谷歌搜索了很多 似乎无法找到适合我的简单用例的简单解决方案 我在 Oracle 12C 数据库中有一个 json 列 当然实际上是一个带有 json 约束的 varchar 在该列中我存储了这样的 Map 表示 a 9 0847 b 8

随机推荐

  • UIScrollView 无法看到 ScrollBars/Indicators。

    我以编程方式创建了一个 UISCrollView 但我看不到滚动条 指示器 UIScrollView contentScrollView UIScrollView alloc initWithFrame CGRectMake 760 70
  • 使用 Maven 进行多部署环境(生产/开发)

    我在 Maven 中有一个 Web 应用程序 具有默认的目录结构 那里没问题 默认目录结构有一些指向我的本地主机数据库的属性文件 目前我创建一个 Ant 脚本来创建不同的 war 文件 一个用于生产 一个用于开发 使用以下命令 ant de
  • TYPO3 9.5.2 Slug:多语言:如果不存在页面翻译,则找不到页面 404 异常

    我有一个有两种语言的网站 例如德文和英文 De 是我的默认语言 没有路径前缀 En 第二种语言 在 url 中以 en 作为前缀 现在 当我切换到 en 语言时 菜单项链接的 url 中包含 en 这很好 但是 当我单击后端未显式翻译的菜单
  • 日期值格式错误

    我正在尝试转换字符串DateTime存在于平面文件中的值Date解析我的代码中的平面文件后的对象 我已经编写了代码来执行此操作 但是当我格式化日期时 它总是为我提供比指定值多于 1 天的日期 有时它会添加 5 30 下面是代码 DateFo
  • Java中float和double的包含范围是多少?

    Java中float和double的包含范围是多少 为什么不建议在精度至关重要的情况下使用 float 或 double Java 的原始数据类型 布尔值 1 位 只能采用 true 和 false 值 字节 1 个有符号字节 二进制补码
  • mysqli_result 类的对象无法转换为字符串错误[重复]

    这个问题在这里已经有答案了 我请求谷歌帮助我 但没有成功 这是生成错误的特定代码 this gt conn gt query UPDATE tz members SET confirm yes WHERE usr uname 整个函数如下
  • Android - 网络日期/时间

    我正在为 Android 编写一个应用程序 我需要允许我的用户捕获他们当前的位置并记录发生这种情况的日期 时间 问题是用户不能通过调整设备上的日期 时间来更改日期 时间 您能否为我指明在使用信号塔定位服务时获取蜂窝网络日期 时间的正确方向
  • 使用 GZIPOutputStream 压缩字符串

    我想压缩我的字符串值 这些字符串值应该与 net拉链的字符串 I wrote 解压方法 当我发送 net将字符串压缩到其中 它可以正常工作 但是Compress方法无法正常工作 public static String Decompress
  • 3D 样条插值 Matlab

    我有两个 3D 数组 A 12751 4616 15915 15864 4622 15667 12877 4683 21050 15816 4668 21253 11374 5006 18495 16995 5466 18493 11638
  • 如何将 HTML5 地理位置数据保存到 python Django admin?

    当用户使用地理定位网站时 是否可以将 javascript html5 地理定位纬度和经度保存到 django admin 网页的目标是保存用户的经度和纬度值 以便稍后用户再次登录时可以访问数据 我发现几年前在 stackoverflow
  • 复选框首选项 onClick()

    我想实现一个由两部分组成的偏好屏幕 如果单击复选框 第一个类别应锁定 第二个类别应解锁 如果不是 则反转 现在我发现只有当我转到上一个活动然后转到新的 sharedPreferences 时它才有效 我应该覆盖哪个侦听器以及如何覆盖 你可以
  • MySql 中获取资源 id #3 错误

    我运行了这段代码 出现了一个 Resource id 3 错误 它应该显示完整的电影表 mysql connect localhost root password or die mysql error mysql select db tre
  • 将 Boost 编译为静态通用二进制库

    我想要一个 Boost 的静态通用二进制库 最好是最新的稳定版本 即 1 43 0 或更高版本 我发现许多谷歌搜索结果都有类似的问题和可能的解决方案 然而 其中大多数似乎已经过时了 而且它们都没有真正起作用 现在 我正在努力 sudo bj
  • PHP 中的多数组排序

    有人知道如何在 PHP 中按键 日期 对这个数组进行排序吗 Array 2011 02 16 gt Array date gt 2011 02 16 num gt 2 2011 02 11 gt Array date gt 2011 02
  • 我应该使用 Java 命名约定吗?

    我被分配到一个大型项目 该项目将用 Java 完成 并由团队中的一些程序员查看 我希望代码可读且易于理解 因此我希望命名约定适合每个阅读它的人 我想知道是否必须使用 Java 命名约定才能让其他人自然地查看和理解它 我总是使用一种我自己的命
  • 无法使用 HMAC SHA256 从示例中重现 AWS 签名

    我正在关注这个例子 http docs aws amazon com AmazonS3 latest API sigv4 query string auth html 并尝试重现他们所说的 64 个字符的签名字符串 aeeed9bbccd4
  • 具有多个路由键的 Spring Boot 流绑定队列

    我需要将单个队列与多个路由键绑定 我在 application properties 中有配置 spring cloud stream bindings some channel1 destination exch spring cloud
  • Android:在现实生活中 getLastKnownLocation(LocationManager.NETWORK_PROVIDER) 返回 null 的频率是多少?

    Android 用户是否有机会重置 NetworkProvider 使位置为空 我想到了一个想法 即只有在第一次启动设备后才能将该位置设置为空 但谷歌也会立即检查位置以征求我的意见 当然 我正在为这种罕见的情况实现默认位置 我只是想知道这种
  • python - 正则表达式为什么“findall”什么也没找到,但“search”有效? [复制]

    这个问题在这里已经有答案了 gt gt gt reg re compile r d 1 3 d 3 gt gt gt str 42 gt gt gt reg search str group 42 gt gt gt reg findall
  • Oracle LISTAGG() 用于查询使用

    所以我试图利用列表 函数来简单地构建一个逗号分隔列表以在基础查询中使用 列表生成工作正常 我只是应用了一个用于调试目的的输出 我可以在其中看到我的列表 因为它应该是 价值观 AB AZ BC CA CT DC FL FO GA IL KS