gpt4 book ai didi

SQL Server 2008 查询查找列中包含非字母数字字符的行

转载 作者:行者123 更新时间:2023-12-01 18:55:22 26 4
gpt4 key购买 nike

实际上几周前我自己也被问过这个问题,虽然我确切地知道如何使用 SP 或 UDF 来做到这一点,但我想知道是否有一种快速而简单的方法可以在没有这些方法的情况下做到这一点。我假设有,但我找不到它。

我需要指出的一点是,尽管我们知道允许使用哪些字符(a-z、A-Z、0-9),但我们不想指定不允许使用哪些字符(#@!$ ETC...)。另外,我们希望提取非法字符的行,以便可以将其列出给用户进行修复(因为我们无法控制输入过程,所以此时我们无法执行任何操作) )。

我之前浏览过 SO 和 Google,但找不到任何可以满足我要求的东西。我见过很多例子,它们可以告诉你它是否包含字母数字字符,但我在查询表单中没有找到能够在句子中拉出撇号的东西。

另请注意,此 varchar 列中的值可以为 null''(空)。

最佳答案

这样不行吗?

SELECT * FROM TABLE
WHERE COLUMN_NAME LIKE '%[^a-zA-Z0-9]%'

设置

use tempdb
create table mytable ( mycol varchar(40) NULL)

insert into mytable VALUES ('abcd')
insert into mytable VALUES ('ABCD')
insert into mytable VALUES ('1234')
insert into mytable VALUES ('efg%^&hji')
insert into mytable VALUES (NULL)
insert into mytable VALUES ('')
insert into mytable VALUES ('apostrophe '' in a sentence')

SELECT * FROM mytable
WHERE mycol LIKE '%[^a-zA-Z0-9]%'

drop table mytable

结果

mycol
----------------------------------------
efg%^&hji
apostrophe ' in a sentence

关于SQL Server 2008 查询查找列中包含非字母数字字符的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1919757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com