问题标签 [patindex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1059 浏览

sql-server - MS SQL Server 2008 charindex 在 char 字符串字段上返回 0

我正在弄清楚如何拆分在字符串值之间有两个空格的字段。

示例字段内容

当再次使用表 varchar 字段时,charindex 和 patindex 都返回 0,但如果我声明一个 varchar(max) 变量并用它进行测试,则返回位置。

我不知道如何使用表 varchar(max) 字段来解决这个问题。

这个作品

这不起作用,为每个记录 char 字符串值返回 0

有人知道为什么吗?

0 投票
1 回答
1997 浏览

string - T-SQL 删除字符串中的前导零

我有这样的字符串:

00 876H873 - 我想要 876H873

00 876 876500 - 我要 876 876500

0000 HUJ8 9IU877 8UJH - 我想要 HUJ8 9IU877 8UJH

我用:

这适用于第一种和第二种情况,即如果没有空格或只有一个空格;但是,如果有多个空格(例如第三个示例),我没有得到正确的答案。

0 投票
2 回答
494 浏览

sql-server - PATINDEX 列的所有值

我正在做一个查询,该查询将从 table1 中删除其列 table1.id = table2.id 的所有行

table1.id 列在 nvarchar(max) 中,xml 格式如下:

编辑: id 列只是一个巨大的 XML 的一部分,因此结束标记可能与开始标记不匹配。

我尝试过使用 name.nodes 但它仅适用于 xml 列并且更改列数据类型不是一种选择,到目前为止这是我使用的代码PATINDEX

但我需要的是从 table2.id 中搜索所有值,其中包含如下:

任何方法都会像 sp_executesql 和/或 while 循环一样好,或者有比使用 patindex 更好的方法吗?谢谢!

0 投票
1 回答
258 浏览

sql - sql 日期格式 patindex 正则表达式 替换召回

使用 SQL,是否有一种优雅的方法可以在日期之后删除“th”、“rd”和“st”?这就是我的做法,但我宁愿做一些类似正则表达式回忆的事情(下面的例子)。

请不要使用带有 while 循环的函数。我已经看到了这些解决方案,我正在寻找不那么难看的东西。

如果使用召回我可以做类似下面的事情

并回忆替换的日期编号是什么

正如我在 sql 示例中的模式一样,可能会引入任意两个字符,后跟逗号,这在 99% 的情况下都很好,但会错误地匹配一些不需要的日期错误格式,用户在月后放置逗号。

0 投票
1 回答
196 浏览

sql - 传递给 LEFT 或 SUBSTRING 函数的长度参数无效 4

我意识到这里有类似的问题,但它们都不是我所需要的。我有一个 SQL 存储过程,它的一部分执行一个视图。我有 3 个设计和功能相同的数据库,但数据不同,我只在其中一个上收到此错误。如果我从出错的数据库中获取视图并在其他数据库中执行它,它运行得很好。最奇怪的是,这个视图工作了,然后停止了,然后自行修复并再次开始工作,当我开始对某些数据进行更改时,它又停止了。

我已将其归结为这一特定行;

有趣的部分是如果我更改'%-%'%'错误消失并且我的 SPROC 正确执行。

我有五个问题;

  1. 当我有'%-%'但没有时,为什么会出现此错误'%'?使用一个与另一个有什么区别和什么样的变化?

  2. 这个错误是什么意思?

  3. 为什么完全相同的视图可以在另外两个相同的数据库上正常工作,而在这个数据库上却不行?

  4. 为什么它会在它工作后停止工作,然后以某种方式修复自己,然后在一些数据操作后再次破坏自己?

  5. 我可以使用 PATINDEX 之外的更好方法吗?

任何帮助表示赞赏。谢谢你。

0 投票
1 回答
212 浏览

sql - SQL Server 2008 patindex 递归

我想找到表达式的最新实例,然后继续寻找更好的匹配,然后选择最佳匹配。

我正在查看的单元格是一个重复附加的日志,带有注释,后跟用户名和时间戳。

示例单元格内容:

我不是数据库范式规则方面的专家,但令人讨厌的是条目被挤在一个单元格中,这使得我的工作是隔离和检查特定单词的注释,特别是当单元格重复多行直到调查结束时它将来自未来阶段的注释放入过去事件的注释列中,最重要的是时间戳使时间戳 PATINDEX 甚至几分钟的余量都不可靠,如下所示:

现在我正在对整个字符串进行反向操作,然后使用 patindex 来查找用户名,然后进行子字符串化以仅选择该调查阶段的注释,问题是当同一个用户为多个阶段输入注释时,我的简单“查找盯着字符串末尾移动到顶部的第一个匹配项”选择了错误的条目。我的第一个想法是搜索用户名,然后再次检查以查看更靠前的条目是否更匹配(注意时间戳与列时间戳),但我不知道如何编写代码......

我必须进行复杂的字符串拆分还是有更简单的解决方案?

0 投票
2 回答
3192 浏览

sql-server - 在 SQL Server 字符串中搜索另一个表中的值

我有一个表,name其名称前后有随机字符,即:

表 A

我在同一个数据库中有另一个表,其名称为:

表 B

对于 30k 行,这种情况会持续下去,或者我只是快速硬编码一些东西。我想在表 A 的“名称”列中搜索表 B 中的每个值的每个字符串,如果找到,则在新列中返回名称。

我感觉这将是一个 UDF,这很好,我只是不确定如何在这种情况下使用 patindex,或者这是否是正确的方法。

0 投票
1 回答
123 浏览

sql - 从 VARCHAR 中提取数字

我试图从中提取数字的表中有一个[Comment]类型的列。VARCHAR(255)这些数字将始终为 12 位数字,但通常不在同一个位置。其中一些还会有多个 12 位数字,这很好,但我只需要第一个。

我试过使用PATINDEX('%[0-9]%',[Comment]),但我不知道如何设置 12 位数的要求。

我正在使用的数据示例如下:

0 投票
2 回答
774 浏览

sql - 删除除最后一个零之外的前导零

数据库 - SQL Server 2012

我目前正在使用以下代码:

我知道有很多子字符串,但它在大多数情况下都有效。不过有一个问题。一些列值是000000000. 在这种情况下, substring/patindex 子句将保持原样。我可以做些什么来将 value000000000转换为 return 0。只有一个零?前导零的长度可能并不总是相同。

谢谢,格雷格

0 投票
2 回答
216 浏览

sql - Patindex 和 Charindex 给我的不仅仅是我想要的

我有一个字符串:

我想返回 Y 之后的数字并具有以下 SQL(例如):

但我得到的结果是:

当然最后的 CHARINDEX 应该给我表达式直到第一个空格?我怎样才能调整它,以便我只得到 Y 之后的数字?