Oracle ORDER BY 中忽略与号 (&) 字符

2024-03-06

我正在 Oracle 中运行一个查询,该查询按可能包含带有“&”号的值的列排序。然而,排序算法似乎忽略了&符号。

例如:

select * from (
    select '&' txt from dual
    union
    select 'P' txt from dual
    union
    select 'N' txt from dual
)
order by txt

准确打印(我猜是正确的):

&
N
P

但是,如果我将带有“&”的文本更改为“&Z”,结果会发生变化:

select * from (
    select '&'||'Z' txt from dual // concatenating just to
                                  // avoid variable substitution
    union
    select 'P' txt from dual
    union
    select 'N' txt from dual
)
order by txt

那么结果是:

N
P
&Z

如果我将“Z”更改为“A”,那么结果是:

&A
N
P

ORDER BY 子句似乎没有考虑“&”。有谁知道这是否是预期行为或者我是否缺少某些配置步骤?我知道需要转义&符号以进行插入或更新。但问题是该角色已经在表中了!

预先感谢各位。


这是语言排序的效果:

SQL> alter session set nls_sort=binary;

Session altered.

SQL> get afiedt.buf
  1  select * from (
  2  select '&' txt from dual
  3  union
  4  select '&'||'Z' txt from dual
  5  union
  6  select '&'||'A' txt from dual
  7  union
  8  select 'P' txt from dual
  9  union
 10  select 'N' txt from dual
 11  )
 12* order by txt
SQL> /

TX
--
&
&A
&Z
N
P

SQL> alter session set nls_sort = 'Dutch';

Session altered.

SQL> get afiedt.buf
  1  select * from (
  2  select '&' txt from dual
  3  union
  4  select '&'||'Z' txt from dual
  5  union
  6  select '&'||'A' txt from dual
  7  union
  8  select 'P' txt from dual
  9  union
 10  select 'N' txt from dual
 11  )
 12* order by txt
SQL> /

TX
--
&
&A
N
P
&Z

它确实对您要排序的语言有所不同。有些字符根据其语言而具有不同的值。对于二进制,您可以使用 ascii 值进行排序。

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

Oracle ORDER BY 中忽略与号 (&) 字符 的相关文章

  • MySQL 相当于 ORACLES 的rank()

    Oracle 有 2 个函数 rank 和dense rank 我发现它们对于某些应用程序非常有用 我现在正在 mysql 中做一些事情 想知道他们是否有与这些相同的东西 没有什么直接等效的 但你可以用一些 不是非常有效的 自连接来伪造它
  • ORA-01741: 非法的零长度标识符

    您好 我在 shell 脚本中使用删除查询 并且遇到了这个问题 delete from WHITELIST CLI where filecode like Line Index condense Error ERROR ORA 01741
  • SQL Server T-SQL 中的 REGEXP_LIKE 转换

    我在一份需要转换为 SQL Server 的旧报告中遇到了这一行 REGEXP LIKE examCodes learner code examCodes 是源 learner code 是模式 我知道 SQL Server 没有 REGE
  • 如何关闭 Oracle 密码过期功能?

    我正在使用 Oracle 进行开发 我经常用于重建数据库的引导帐户的密码已过期 如何永久关闭该用户 以及所有其他用户 的密码过期功能 我使用的是 Oracle 11g 默认情况下密码会过期 要更改 Oracle 中某个用户配置文件的密码过期
  • 了解 Mac 上的 Oracle Java

    我在 OS X 上使用 Java 很多很多年了 最近当 Apple 停止默认包含 Java 时 我放弃了操作系统并为我安装了它 当然是 Apple 的版本 现在我使用的是 OS X 10 8 并且需要安装 Java 7 因此我刚刚获得了 D
  • 是否可以使用不在 GROUP BY 中的 ORDER BY 列?

    正如标题所说 这是我的代码 SELECT material SUM Amount AS Amount RIGHT CONVERT varchar 50 date in 106 8 FROM rec stats GROUP BY materi
  • 神秘的 getClobVal()

    我有一个表 AKADMIN 其中包含 XMLTYPE 列 其名称为 XML 我想在该列中使用 getClobVal select t xml getClobVal t xml getClobVal t xml getClobVal as c
  • Rails 建模:将 HABTM 转换为 has_many :through

    我正在现有的 Rails 站点上进行维护工作 并且遇到了一些由多对多关联引起的问题 看起来该网站最初是使用has and belongs to many对于一些业务逻辑变得更加复杂的关系 所以我需要使用has many through而是支
  • Oracle中如何转义单引号? [复制]

    这个问题在这里已经有答案了 我有一列包含某些存储为文本字符串的表达式 其中包括单个引号 例如 错过的交易 包括引号 发生这种情况时如何使用 where 子句 select from table where reason missed tra
  • Oracle - 仅当不存在时才创建索引

    有没有什么方法可以在oracle中创建索引 只有当它们不存在时 就像是 CREATE INDEX IF NOT EXISTS ord customer ix ON orders customer id 仅当索引不存在时添加索引 declar
  • OVER ORDER BY 中的多个列

    有没有办法在 OVER ORDER BY 子句中指定多个列 SELECT ROW NUMBER OVER ORDER BY A Col1 AS ID FROM MyTable A 上面的方法工作正常 但尝试添加第二列不起作用 SELECT
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • oracle日期序列?

    我有一个 oracle 数据库 我需要一个包含 2 年所有日期的表 例如来自01 01 2011 to 01 01 2013 首先我想到了一个序列 但显然唯一支持的类型是数字 所以现在我正在寻找一种有效的方法来做到这一点 欢呼骗局 如果您想
  • 如何从 Oracle 中的 select 语句调用带有 Rowtype 参数的函数

    我有一个 oracle 函数 它有一个 in 参数 它是表的行类型 我需要从 select 语句将当前行传递给这个函数 以便它进行一些处理并返回一个值 是否有一个伪变量可以在 select 语句的上下文中使用 相当于触发器中的旧的和新的 我
  • 如何使用与号 (&) 替换匹配模式中的字符

    当我们使用 sed 匹配模式时 匹配的模式存储在 变量中 有没有办法使用 符号本身替换此匹配模式中的字符 例如 如果 包含字符串 apple1 我如何使用 将字符串转换为 apple2 即将 1 替换为 2 如果我猜对了 您要做的就是在匹配
  • 从 Oracle Varchar2 中查找并删除非 ASCII 字符

    我们目前正在将一个 Oracle 数据库迁移到 UTF8 并且发现一些记录接近 4000 字节 varchar 限制 当我们尝试迁移这些记录时 它们会失败 因为它们包含的字符变成了多字节 UF8 字符 我想要在 PL SQL 中做的是找到这
  • 仅使用 SQL 中的 MAX 函数更新重复行

    我有一张这样的桌子 假设为了举例 NAME是一个唯一的标识符 NAME AGE VALUE Jack Under 65 3 Jack 66 74 5 John 66 74 7 John Over 75 9 Gill 25 35 11 Som
  • 在 Oracle 中创建数据库链接时出错

    我有两个数据库 需要编写跨数据库查询 所以我试图创建一个数据库链接 CREATE PUBLIC DATABASE LINK DBLink CONNECT TO SchemaName IDENTIFIED BY 123 using DBNam
  • 如何使用 EclipseLink 处理以 Oracle 类型作为输入或输出的 Oracle 存储过程调用

    我进行了概念验证 以了解使用 EclipseLink 调用存储过程的效率如何 我能够使用带有标量 原始数据类型 链接整数 varchar 等 的 EclispeLink 来调用 Oracle 存储过程 我想了解如何使用集合 Oracle 类
  • 如何使用 Java 创建多个模式连接?

    我必须使用两个数据库 DB2 Oracle 我在 DB2 数据库中有一个名为NAVID 我想使用 Java 为 Oracle 中的所有表创建相同的架构 public class automateExport static String va

随机推荐

  • 如何使用 NUnit 模拟属性?

    如何使用 NUnit 模拟属性 NOTE 我发现这个外围的嘲笑答案 https stackoverflow com questions 591174 how to mock the property which returns the li
  • 如何在 mongodb 中使用构面操作查找字段的不同值

    FilteredAccording 部分和categorizedBy 使用我在链接中提供的查询按预期工作 但我在 findDistinct 部分遇到问题 在 mongodb 中我有以下数据 id 10001 university SPYU
  • Jmeter JSR223 Sampler - 无法将数据写入 CSV 文件

    我正在使用 Jmeter v4 0 r1823414 根据这个答案 https stackoverflow com questions 50820389 unable to set incremental variable in jmete
  • 远程连接到 WebDev.WebServer.exe

    开发 ASP Net 网站 运行IE8 需要在IE6下测试网站 MultipleIE6 安装被 IE8 安装破坏 无法在文本框中输入 是的 我删除了缓存 是的 我重新注册了 dll 创建运行 IE6 的 VPC 无法连接到主机 WebDev
  • 如何防止结构体的默认构造函数被调用?

    有什么方法可以阻止调用结构体的默认构造函数吗 我的项目中有几个结构 其中一些结构在任何情况下都不能调用默认构造函数 这将导致我的代码中出现很多不需要的行为 PS 任何在编码时指示我某些特殊结构 无法使用默认构造函数实例化 被 错误 实例化的
  • finplot 作为布局中的小部件

    我正在尝试添加finplot https pypi org project finplot https pypi org project finplot 作为我的 UI 中布局之一的小部件 我创建了一个小部件finplot并将其添加到布局中
  • 访问 Jinja2 中的宏观上下文

    我想访问上下文函数内 jinja2 宏命名空间中的变量 假设我的宏看起来像 macro show var a show var context function a endmacro 我的上下文函数如下所示 contextfunction
  • 在 Yii2 中隐藏 URL 中的网页

    我已遵循中描述的答案这个问题 https stackoverflow com questions 27178364 yii 2 0 hiding basic web from the url along with the index php
  • C++ OutputIterator 后递增要求

    C 要求 OutputIterator 类型X支持形式的表达式r where r是一个实例X 此后缀增量在语义上必须等同于 X tmp r r return tmp 并且必须返回一个可转换为的类型X const 在 C 11 中 请参阅 2
  • 在 Visual Studio 中从包管理器控制台使用 git

    我正在尝试使用git从 Visual Studio 2010 中的包管理器控制台窗口 git命令按预期运行 与网络相关的命令除外 当我尝试时git push origin masterStudio 停止响应 代码已推送到 github co
  • Include() 然后包含() 在每个层次结构表策略中抛出“序列包含多个匹配元素”异常

    我正在使用 Entity Framework 7 和代码优先 并且我有一个涉及 3 个级别的父子关系的模型 Corporations have companies Companies属于一个corporation并有factories Fa
  • Q列出并删除

    我有一个QList带有指向类类型对象的指针Model 我想适当删除这个QList使用后 我知道 Qt 的哲学是避免 C 风格的内存管理 我如何delete this QList 你可以使用q删除全部 http qt project org
  • WPF ShowDialog 和 ElementHost

    是否可以从作为 ElementHost 子级的 WPF 用户控件显示模态窗口 并将模态窗口的所有者 父级设置为包含的 Form 控件 我猜您不能执行此操作 因为 Owner 属性采用 Window 的实例 而我想将其设置为 Element
  • 使用 UINavigatonController 有条件地跳过 iOS 5 应用程序中的 UIViewController

    在我们的 iOS 应用程序中 有三个UIViewController一个接着一个 我们想根据某些条件跳过中间的 直接从第一到第三 但是 用户应该能够通过第三个控制器上的 后退 按钮返回到第二个控制器 I tried self perform
  • 获取树枝模板文件中使用的所有变量[重复]

    这个问题在这里已经有答案了 是否可以获取树枝模板中使用的所有变量 例如 在模板上 ul for item in navigation li a href item caption a li endfor ul h1 My Webpage h
  • 从 Firefox 扩展设置 HTTP 标头

    如何在 Firefox 扩展中设置 HTTP 标头 我将做到这一点 以便这些仅在访问我的网站时发送 以便我可以检测插件是否已安装 如果安装了 则不会推广该插件 这是我发现的最紧凑的方法 Components classes mozilla
  • 我应该使用哪个移动开发开源框架? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的公司想开发一个移动应用程序 Web 应用程序 本机应用程序还是混合应用程序 他们其实不知道 在这种情况下 他们要求我对移动开发的开源框架 跨
  • 如何重置参数值以便代理可以再次请求参数?

    我创建了一个对话流代理和其中的多个意图 其中一种意图需要 2 个参数 账户和余额类型 然后 它发送 Webhook 请求 其中写入代码以检查数据库中是否存在帐号 如果是的话 它会获取余额并发回给用户 现在 如果帐号不存在 我必须要求用户再次
  • 使用 json4s 序列化和反序列化 scala 枚举或 case 对象

    假设我有一个枚举或密封的案例对象组 如下所示 sealed abstract class Status case object Complete extends Status case object Failed extends Statu
  • Oracle ORDER BY 中忽略与号 (&) 字符

    我正在 Oracle 中运行一个查询 该查询按可能包含带有 号的值的列排序 然而 排序算法似乎忽略了 符号 例如 select from select txt from dual union select P txt from dual u