返回 id 并分割逗号分隔值的 SQL 语句

2023-12-25

我有一个包含以下数据的表:



NodeId ExternalIds
50     601
56     700,701
  

如何编写分割ExternalIds列并返回的SQL语句:



NodeId ExternalIds
50     601
56     700
56     701
  

我发现了很多用户定义的函数和过程,它们将字符串拆分成表,但我无法让它们中的任何一个工作

edit



create table #tmpTable (NodeId int, ExternalIds varchar(50))
insert into #tmpTable (NodeId,ExternalIds) values (50, '600')
insert into #tmpTable (NodeId,ExternalIds) values (56, '700,701')

select NodeId, 
    (SELECT * FROM [dbo].[SplitString](select * from #tmpTable,',') where NodeId=56)from #tmpTable)
where NodeId=56
drop table #tmpTable
  

其中 SplitString 基于以下内容:



SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

Create FUNCTION [dbo].[SplitString] 
(
    -- Add the parameters for the function here
    @myString varchar(500),
    @deliminator varchar(10)
)
RETURNS 
@ReturnTable TABLE 
(
    -- Add the column definitions for the TABLE variable here
    [id] [int] IDENTITY(1,1) NOT NULL,
    [part] [varchar](50) NULL
)
AS
BEGIN
        Declare @iSpaces int
        Declare @part varchar(50)

        --initialize spaces
        Select @iSpaces = charindex(@deliminator,@myString,0)
        While @iSpaces > 0

        Begin
            Select @part = substring(@myString,0,charindex(@deliminator,@myString,0))

            Insert Into @ReturnTable(part)
            Select @part

    Select @myString = substring(@mystring,charindex(@deliminator,@myString,0)+ len(@deliminator),len(@myString) - charindex(' ',@myString,0))


            Select @iSpaces = charindex(@deliminator,@myString,0)
        end

        If len(@myString) > 0
            Insert Into @ReturnTable
            Select @myString

    RETURN 
END
  

我正在尝试从 Umbraco(cms)的数据库中获取一些数据,该数据库是用逗号分隔值设计的。

谢谢 托马斯


select NodeId, 
       S.part
from #tmpTable
  cross apply [dbo].[SplitString](ExternalIds, ',') as S
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回 id 并分割逗号分隔值的 SQL 语句 的相关文章

  • 如何从 C# 连接到 SQL 数据库?

    我正在尝试为我的家庭网络编写一个本地程序管理和安装系统 并且我认为我已经确定了技术 C NET WPF 客户端 Lua 用于安装脚本支持 通过 LuaInterface SQL Server Express 用于维护程序数据库 但是我不确定
  • 如何使用xampp连接sql服务器和php?

    我正在尝试使用 Xampp 将我的 SQL 服务器与 PHP 连接 我已经在ext文件夹中上传了dll文件 但无法连接它 我的PHP版本是7 2 6 上传的dll文件是 php pdo sqlsrv 72 ts dll php sqlsrv
  • SQL Server 中 SYSDATETIME 数据类型的准确性

    我已经在 SQL Server 2008 的存储过程中使用 SYSDATETIME 进行了一些测试 我设置了一个包含带有 IDENTITY 字段的 datetime2 7 的表 我了解这种数据类型的精度和准确度之间的差异 但是 在从此示例中
  • 将文件存储在文件系统上或在 SQL Server 中存储为 varbinary(MAX)

    我知道 对于将文件作为 blob 存储在数据库中是否是不好的做法存在很多争议 但我只是想了解这对于我的情况是否有意义 我正在创建一个 ASP NET 应用程序 在一家大公司内部使用 用户需要能够将文件附加到系统中的 作业 这些文件通常是 P
  • 在 SSIS 流中使用临时表失败

    我有一个 ETL 过程 可将约 40 个表从源数据库 Oracle 10g 提取到 SQL Server 2014 开发人员版 临时环境 我的提取过程 确定暂存中的最新行 从源中选择所有较新的行 将结果插入 TEMPTABLE 将 TEMP
  • 具有数百万行的日志表。怎么办?

    我有一个包含数百万行的日志表 我正在考虑将数据分成多个表 即 LoginHistory ExceptionHistory PaymentProcessingHistory 等 在采用包含许多行 而不是列 的大型表并创建多个表时使用的术语是什
  • 根据聚合创建大小均匀的组

    可能是一个新手问题 但我希望根据数据库总大小将我们的服务器库存分成几个大小均匀的组 并且很难弄清楚如何对它们进行分组 我认为 NTILE 可能会起作用 但我就是无法将注意力集中在平均分配组上 我下面的示例只是随机订购服务器 我希望结果是大小
  • 没有列名列表的tsql标识插入

    我要将一些数据从一个数据库转储到另一个数据库 我在用 set identity insert MyTable on GO INSERT INTO MyTable SELECT FROM sourceDB dbo MyTable GO set
  • Microsoft 同步框架 - 双向同步如何工作?

    我有两个客户端 A 和 B 两个客户端都有相同的同步本地数据缓存 如果客户端 A 对记录 X 进行离线编辑 然后客户端 B 也离线编辑记录 X 并与服务器同步 则当客户端 A 与服务器同步时 客户端 B 所做的更改不会反映出来 并且无论进行
  • MySQL CREATE TABLE 语句上的外键错误(错误:150)

    我觉得我已经在一对非常简单的创建表语句上尝试了一切可能的方法 类型匹配 我尝试使用 ENGINE InnoDB 等 但很困惑为什么我收到外键错误 我已经离开 SQL 一段时间了 所以这可能是一个简单的问题 mysql gt CREATE T
  • 出错时退出并回滚脚本中的所有内容

    我有一个 TSQL 脚本 它可以进行大量数据库结构调整 但在出现故障时让它继续执行并不真正安全 把事情说清楚 使用 MS SQL 2005 它不是一个存储过程 只是一个脚本文件 sql 我所拥有的按以下顺序排列 BEGIN TRANSACT
  • 如何返回以列名作为第一行的 T-SQL 查询

    我正在编写一个 SSIS 包来将数据从 SQL Server 2012 数据库输出到 CSV为客户归档 要求是第一行是列名称 下面是我为数据流任务中的源编写的查询 问题是 它总是将列名返回为最后一行 而不是第一行 为什么 我该如何实现这一目
  • SQL Server 将 SP_EXECUTESQL 识别为对象而不是过程名称

    我在用DBContext Database SqlQuery
  • .Net 将 NULL 值从变量值插入 SQL Server 数据库

    也有类似的问题 但答案不是我想要的 如果引用为 NULL 或尚未分配值 我想将 NULL 值插入 SQL Server 数据库 目前我正在测试 null 它看起来像 String testString null if testString
  • 使用 SqlBulkCopy 时提供流作为二进制列的数据源

    如果需要读取数据fromSqlServer 采用流式传输方式 有一些功能可以实现这一点 比如使用SqlDataReader with CommandBehavior SequentialAccess 特别是当需要访问二进制列数据时 有Get
  • 为什么 Excel 有时会在工作表名称中添加 $?

    我有时但并非总是发现 Excel 会放置一个 位于工作表名称末尾 但在 Excel 中看不到 只有在尝试使用 C 将其导入 SQL Server 时才可见 我遇到过很多不同的情况 它保留了原始工作表 但也创建了第二个空的 隐藏 工作表 其中
  • SQL Server 2005 - 达到表行大小限制

    有没有一种干净的方法可以在向表添加新列之前确定表的行大小 并且不超过 8060 字节的限制 例如 如果表行长度当前为 8055 字节 并且我想添加日期时间 8 字节 则这将结束 因为它将变为 8063 字节 不包括空映射 但是 如果我添加一
  • SQL Server:将 varchar 转换为十进制(也考虑指数表示法)

    我需要转换表的数据并进行一些操作 其中一种列数据类型是Varchar 但它存储decimal数字 我正在努力转换varchar into decimal 我努力了CAST TempPercent1 AS DECIMAL 28 16 问题是数
  • SQL:列出多个连接语句中的重复记录?

    你好 以下查询在连接多个表后返回所有员工 select e from dbo EMP e join dbo HREMP a on a ID e ID join dbo LOGO c on c EMPID e id join dbo LOGO
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10

随机推荐

  • Firebase 存储的动态图像大小调整

    有没有一种有效的方法可以通过更改图像 URL 中的查询参数来提供存储在 firebase 存储中的动态尺寸图像 或者类似 Imgix 的东西 什么是最有效的方法 我建议您尝试使用 ImageMagick 调整 Firebase 存储大小的
  • 将 gulp.start 函数迁移到 Gulp v4

    我已经将所有 gulp v3 代码库迁移到 v4 中 然而 我陷入了一个困境 我有 gulp start 函数 当我在 gulp v4 中运行 gulp start 时 它会抛出一个错误 这是我在版本 3 中的功能 gulp task de
  • 批处理 for 循环内存泄漏?

    我正在编写一个批处理脚本 它会遍历目录中的每个文件 查找代码文件并以某种方式修改它们 完成该任务后 我尝试在包含大约 6 000 个文件的大目录上运行它 大约 40 分钟的脚本崩溃了 我从命令提示符处收到了很多内存不足的错误 运行脚本的同时
  • 无法将“...”类型的值添加到“UIElementCollection”类型的集合或字典中

    当我通过 XAML 添加自定义控件时 出现以下错误 可能的原因是什么 A value of type cannot be added to a collection or dictionary of type UIElementCollec
  • 如何正确管理屏幕上的精灵组

    我正在用 Swift 构建我的第一个游戏 我想知道如何同时处理多个屏幕精灵 我的游戏将精灵推到屏幕上addChild连续的 所以同时有很多活跃的 我意识到我没有同时影响所有敌人的正确方法 就像我想同时影响所有敌方精灵的物理属性一样 到目前为
  • 简单银行账户的派生账户余额与存储账户余额?

    就像我们普通的银行账户一样 我们有大量的交易 导致资金流入或流出 账户余额始终可以通过简单地总结交易价值来得出 将更新后的账户余额存储在数据库中还是在需要时重新计算 哪一个更好 每个账户的预期交易量 每日 预期检索账户余额 每当交易发生时
  • 如何在 Flutter 中对 JSON 数据进行文本搜索?

    我正在开发一个应用程序 该应用程序需要从 firebase 存储中获取一些 JSON 数据 然后用户可以对其执行搜索 但是 我的搜索查询无法正常工作 并且在多次执行搜索时出现一个错误 我首先将数据上传到 firebase 存储 然后提取它
  • 无法初始化 FirebaseApp - Flutter

    我的项目突然停止正常运行 它无法初始化 FirebaseApp 我一直在使用老式的 Firebase 配置 直接从 Firebase 控制台使用 Google Services 文件 我切换到命令flutterfire configure但
  • 为什么 Git 会在没有询问我的情况下记住并使用中止的 rebase 中的冲突解决方案?

    我对我的分支做了变基foo git rebase master 做了一些冲突解决方案 然后决定我不想这样做 然后中止 git rebase abort 所有分支日志历史看起来都很正常 现在我想再次开始相同的过程 git rebase mas
  • OnClick 事件对列表视图项目重复

    我的应用程序中有一个列表视图 每个列表视图行都会在点击时展开 并且隐藏视图变得可见 但问题是隐藏视图对于列表中的许多其他项目也变得可见 我知道这种行为的原因 但不知道如何解决 这是我的适配器类 public class ScheduleTa
  • 即使没有断点,Chrome 调试器也会暂停?

    检查此站点时 即使没有设置断点 脚本也始终在调试器中暂停 并且如果暂停未暂停 它会再次自行暂停 可以做什么 https i stack imgur com J84eU png https i stack imgur com J84eU pn
  • SELECT MAX 返回错误值

    我有一个 SQL 数据库 其中有一个名为premisis 我希望选择最高的行premisisnumber 这是我正在使用的 SQL SELECT max premisisnr AS premisisnr FROM premisis 问题是
  • 真正的path.py请站起来吗?

    有一个很好的模块 path py 由贾森 奥伦多夫撰写 如果我没记错的话 曾经有过一些关于将其添加到标准库的讨论 然后就消失了 现在看来 原来的产物有多种衍生产物 到目前为止我能找到unipath http pypi python org
  • AWS Beanstalk 在部署 Nodejs 应用程序时如何使用 NPM?

    我对 AWS Beanstalk 部署的整体工作流程感到好奇 我假设它在某个时刻运行 npm 来将软件包安装在服务器上 但我只是想知道 AWS Beanstalk 是否使用最新的 npm install product 命令来安装软件包 目
  • NAT 后面的 UDP 打洞

    我正在尝试用 Java 实现 UDP Holepunching 的简单草图来测试它的概念 并稍后在我的 C C 应用程序中使用它 Concept 根据维基百科 我对这个概念的理解是这样的 假设 A 和 B 是未定义网络结构后面的客户端 C
  • Firebase Angular 4基于节点环境初始化

    我已经使用 Angular CLI 构建了 Angular 4 项目 我正在 Heroku 上部署我的应用程序 我已经为开发和生产环境创建了 heroku 管道 我有两个 Firebase 数据库开发和生产 我希望我的 Angular 2
  • 从 JBoss EAP 6.1 中排除 JPA 子系统 - 尝试在 JBoss EAP 6.1 中使用 JPA 2.1

    我有一个 war 应用程序 其中包含使用 Spring 容器打包和引导的 JPA 2 1 API 和 Hibernate 4 3 0 Final JPA 2 1 实现 我想将其部署在 JBoss EAP 6 1 中 我知道 JBoss EA
  • 是否可以修改 Service Worker 缓存响应标头?

    我正在尝试标记存储在服务工作线程缓存中的资源 我认为可以向资源添加一个自定义标头来表明这一点 但是 一旦资源存储在服务工作线程缓存中 标头修改似乎就会被删除 是这样吗 我没有看到任何内容缓存规范 https www w3 org TR se
  • 再次显示相同的 AlertDialog

    我正在测试 AlertDialog 的行为以集成到更大的组件中 我无法再次显示相同的对话框 这是测试代码 public class MainActivity extends AppCompatActivity private AlertDi
  • 返回 id 并分割逗号分隔值的 SQL 语句

    我有一个包含以下数据的表 NodeId ExternalIds 50 601 56 700 701 如何编写分割ExternalIds列并返回的SQL语句 NodeId ExternalIds 50 601 56 700 56 701 我发