|
|
1
392
尝试此功能:
一旦您理解了代码,您应该会发现将其更改为删除其他字符也相对简单。您甚至可以将此动态设置为足以在搜索模式中传递。 希望能有帮助。 |
|
|
2
190
的参数化版本 George Mastros ' awesome answer :
仅字母:
仅限数字:
仅字母数字:
|
|
|
3
9
信不信由你,在我的系统中,这个丑陋的函数比优雅的函数表现得更好。
|
|
|
4
6
我知道SQL不擅长字符串操作,但我不认为这会如此困难。下面是一个简单的函数,用于从字符串中去掉所有数字。有更好的方法可以做到这一点,但这只是一个开始。
输出
第二轮-数据驱动黑名单
输出
我对读者的挑战:你能让这更有效吗?使用递归怎么样? |
|
|
5
5
这里的解决方案不需要创建函数或列出所有要替换的字符实例。它结合使用递归WITH语句和PATINDEX来查找不需要的字符。它将替换一列中所有不需要的字符-任何给定字符串中最多包含100个唯一的坏字符。(例如,“ABC123DEF234”将包含4个错误字符1、2、3和4)100限制是WITH语句中允许的最大递归数,但这不会对要处理的行数施加限制,这仅受可用内存的限制。
|
|
6
4
如果您和我一样,没有向生产数据添加函数的权限,但仍然希望执行这种过滤,那么这里有一个纯SQL解决方案,使用透视表将过滤后的部分重新组合在一起。 请注意
|
|
|
7
4
查看了所有给定的解决方案后,我认为必须有一个纯SQL方法,它不需要函数或CTE/XML查询,并且不涉及难以维护的嵌套REPLACE语句。以下是我的解决方案:
这样做的好处是,有效字符包含在子查询的一个字符串中,便于为不同的字符集重新配置。
|
|
|
8
3
下面是使用
现在有了基于模式的拆分器,需要拆分与模式匹配的字符串:
然后将它们连接回以获得所需的结果:
结果:
|
|
|
9
2
受艾伦先生的解决方案启发,这个解决方案需要
|
|
|
10
2
here . 您应该能够将整个代码块复制并粘贴到SSM中,并在那里使用它。结果包括一些额外的专栏,以帮助我们了解发生了什么。我花了一段时间才理解PATINDEX(RegEx)和递归CTE的所有功能。
|
|
|
11
1
我把这个放在两个叫PatIndex的地方。
用于上面的自定义函数RemovenonalPharacters,并将其重命名为RemoveNonAlphaNumericCharacters |
|
|
12
1
--首先创建一个函数
现在像这样调用这个函数
结果是
|
|
|
13
1
从性能角度来看,我会使用内联函数:
|
|
|
14
1
SQL Server 2017+的另一个可能选项是使用
或者作为一种功能:
|
|
|
15
1
对于SQL Server>=2017...
|
|
|
16
0
使用CTE生成的数字表检查每个字符,然后将XML转换为保留值字符串,您可以。。。
|
|
|
17
0
|
|
|
18
0
这种方法对我不起作用,因为我试图保留阿拉伯字母,我试图替换正则表达式,但也不起作用。我写了另一个方法在ASCII级别上工作,因为这是我唯一的选择,而且它是有效的。
去 |
|
|
19
-1
虽然这篇文章有点陈旧,但我想说以下几点。 我使用上述解决方案时遇到的问题是,它无法过滤掉§、、等字符。我对函数进行了如下调整(我只使用了一个80 varchar字符串来节省内存):
|
|
|
20
-3
如果您正在使用Oracle 10g,我刚刚发现它内置于Oracle 10g中。为了比较电话号码,我不得不去掉所有的特殊字符。
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |