SQL Server 加入顺序

2023-11-22

我在输入中有 2 个字符串,例如“1,5,6”和“2,89,9”,具有相同数量的元素(3 或以上)。 我想要的那两个字符串作为“纵坐标连接”

1   2
5   89
6   9

我想分配一个行号并在 2 个结果集之间进行连接:

SELECT a.item, b.item  FROM 
  (
  SELECT  
  ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS rownumber,
  *  FROM dbo.Split('1,5,6',',')
  ) AS a
  INNER JOIN   
  (
  SELECT  
  ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS rownumber,
  *  FROM dbo.Split('2,89,9',',')
 ) AS b ON a.rownumber = b.rownumber 

那是一个最佳实践 ever?


When dbo.Split()返回数据集,您所做的任何事情都无法绝对确定地分配您想要的 row_number (基于它们在字符串中的顺序)。 SQL从不保证没有的订购ORDER BY这实际上与数据有关。

与你trick使用的(SELECT 0)您可以订购often获得正确的值。大概very经常。但这是never 保证。偶尔有一次你will得到错误的订单。

最好的选择是重新编码dbo.Split()在解析字符串时分配 row_number 。只有这样,您才能 100% 确定 row_number 确实对应于列表中项目的位置。

然后你按照你的建议加入他们,并得到你想要的结果。


除此之外,这个想法对我来说确实不错。尽管您可能希望考虑FULL OUTER JOIN如果一个列表可以比另一个列表长。

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

SQL Server 加入顺序 的相关文章

  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • 按空值和非空值分组

    我有一个包含用户 facebook ID 的表 我必须报告谁在使用 facebook 或不使用 对于 facebook 用户 数据行包含一个数字 否则包含 null 我的结果必须是这样的 NbUsers Facebook 1000 no 5
  • sql查询获取从一月到当月的所有数据,即使没有记录

    我不擅长 sql 所以任何帮助世界都很棒 我有一个 SQL 查询 可以获取从一月到当月注册的记录 我的代码示例 SELECT DatePart YEAR p createStamp as TheYear DatePart MONTH p c
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • JDBC插入实数数组

    我试图将一个真实的数组插入到 postgresql 数组中 该表的定义是 String sqlTable CREATE TABLE IF NOT EXISTS ccmBlock sampleId INTEGER block REAL 插入内
  • 更改列时快速删除并重新创建多个索引、视图、统计信息

    我的 项目 表中有一个 StoreNumber 列 我想将其更改为 NOT NULL 我最近清理了所有旧数据 以便不存在空条目 但是 当我执行以下语句时 由于对各种视图 索引和统计信息的多重依赖 它失败了 ALTER TABLE Proje
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • 是否有适用于 SQL Server Express 的 SQL Server Profiler? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 SQL Server Express 的 SQL Server Profiler 也许是开源的 或者也许只是一个可以帮助我查
  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST

随机推荐

  • 处理所有屏幕尺寸android

    我正在开发一个android应用程序 它的设计与数字 边距等 没有相关的东西 所以我想我会发现不同屏幕尺寸的许多问题 所以我想到制作一个函数来将数据保存在DIMENSIONS文件与用户屏幕尺寸成比例 例如 User s screen siz
  • 从函数返回值是如何工作的?

    我最近遇到了一个严重的错误 我忘记了在函数中返回一个值 问题是 即使没有返回任何内容 它在 Linux Windows 下也能正常工作 只有在 Mac 下才会崩溃 当我打开所有编译器警告时 我发现了该错误 这是一个简单的例子 include
  • 限制管理中内联表单中 select 的外键选择

    该模型的逻辑是 A Building有很多Rooms A Room可能在另一个里面Room 例如 一个壁橱 self 上的foreignkey A Room只能在另一个里面Room在同一栋楼里 这是棘手的部分 这是我的代码 spaces m
  • C# - 静态方法中的参数线程安全吗?

    这个方法是线程安全的吗 看起来好像并不是 public static void Foo string str Guid id str str id ToString Do Stuff return 在这种情况下 参数是两个不可变的值 在一个
  • 我可以同时使用“res.sendFile”和“res.json”吗?

    目前 我正在 Express 应用程序中使用控制器来处理路由 当某条路线被击中时我打电话pagesController showPlayer为我服务index html 这是控制器 use strict var path require p
  • Nixpkgs 存储库中定义的“callPackage”在哪里(或者一般如何查找 Nix lambda 定义)?

    找到了很多描述的来源callPackage以及它的一些内部结构 但没有一个涉及它的位置 这就像 Nix 保守得最好的秘密 甚至手册似乎都在积极回避这个话题 我可以在给定的时间内找到它 但它是一个巨大的回购 资源 Nix callPackag
  • 我可以添加/减去绑定到元素属性的值吗?

    XAML 是否允许修改绑定值 Like Width Binding Elementname lstMine Path Width 100 这样我才能有一个相对的价值 您可以使用转换器来实现此目的 我的WPF 转换器图书馆包括一个Expres
  • 找不到结束分隔符“/”错误

    我调整了一个小脚本来检查反向链接 但我仍然收到错误 警告 preg match function preg match 第 17 行未找到结束分隔符
  • Java中的双倍增量[重复]

    这个问题在这里已经有答案了 可能的重复 如何在Java中以0 1f增量在0 1f和1 0f之间迭代 我的程序的一部分需要在 while 循环内使用值 如下所示 0 1 0 2 0 3 0 9 所以我需要在该循环内提供它们 这是代码 doub
  • NetworkCredential UseDefaultCredentials 不起作用

    我们很久以前就编写了一段代码来使用域凭据调用服务 现在域已更改并计划使用默认 Windows 帐户 所以我试图通过配置重置 asmx web 服务的网络凭据 我创建了一个 SoapExtentsion 类并尝试覆盖那里 即使它执行该行 但它
  • 如何将数据从 Express 服务器传递到反应视图?

    我有一个简单的 Express 服务器 连接到 orientdb 数据库 我需要将信息从 Express 传递到 React 视图 例如 在快递中我有 router get function req res next Vertex getF
  • 创建新Socket时添加超时

    我有一个带有 DHCP 的本地网络和几台 PC 其中之一应该是我的服务器 并自动连接到所有其他服务器 客户端 我的想法是这样的 首先 我在每个客户端 CServer 上创建一个服务器 用于侦听来自服务器 SClient 的客户端程序 当SC
  • java.net.SocketException:软件导致连接中止:recv 失败

    我无法找到以下错误的确切含义的适当答案 java net SocketException Software caused connection abort recv failed Notes 这种错误很少发生且不可预测 尽管出现此错误意味着
  • 在 Angularfire2 中“加入”Firebase 查询

    Update 我遇到的空值字段问题与数据库中不存在的键有关 因此这里的大部分讨论不适用于您的问题 如果您正在寻找一种在 AngularFire2 中 加入 查询的方法 下面接受的答案可以很好地做到这一点 我目前正在使用combineLate
  • 如何从AWS lambda java中的类路径加载属性文件

    我编写了 AWS lambda 函数 因为我想从属性文件和类路径中读取数据库连接详细信息 但我无法加载该文件 这是我的代码 InputStream input DBConfiguartion class getResourceAsStrea
  • 返回无效(0);与返回;中断功能[重复]

    这个问题在这里已经有答案了 我遇到了一些中断函数的代码return void 0 我相信这将被用来返回undefined但这可以简单地通过写来完成return Does return void 0 有一个额外的目的 或者这只是中断函数的两种
  • 使用 Azure Functions 3.0 中的属性将 Enum 序列化为字符串

    我尝试在 Azure Functions 3 0 3 1 应用程序中获取 HTTP 触发器来返回枚举的字符串表示形式 但没有任何运气 我已经尝试过 Core 3 0 和 Core 3 1 给定这个类 public enum TestEnum
  • SharedPreferences 何时被删除?

    SharedPreferences 类允许以简单类型 布尔值 字符串等 格式保存应用程序数据 通常它们不会被删除 并且应该持续存在 但是在更新 删除应用程序或清除应用程序缓存等情况下它们是否会被删除 当你这样做时clear data从设备应
  • 使用 SqlBulkCopy 时如何检索服务器生成的标识值

    我知道我可以通过不指定身份列来批量插入到我的表中SqlBulkCopyOptions KeepIdentity如上所述here 我希望能够做的是获取服务器生成的标识值并将它们放入我的数据表 甚至列表中 我看见this发布 但我希望我的代码是
  • SQL Server 加入顺序

    我在输入中有 2 个字符串 例如 1 5 6 和 2 89 9 具有相同数量的元素 3 或以上 我想要的那两个字符串作为 纵坐标连接 1 2 5 89 6 9 我想分配一个行号并在 2 个结果集之间进行连接 SELECT a item b