首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL中的Fine Alphabet in数字

SQL中的Fine Alphabet in数字
EN

Stack Overflow用户
提问于 2011-01-12 22:17:40
回答 2查看 592关注 0票数 0

我有一张这样的桌子:

代码语言:javascript
复制
CREATE TABLE [Mytable](
    [Name] [varchar](10),
    [number] [nvarchar](100) )

我想查找包含字母字符的数字?

数据格式必须如下所示:

代码语言:javascript
复制
Name | number
---------------
Jack | 2131546
Ali  | 2132132154

但是一些时间数字插入通知,其中有字母字符和其他没有数字字符,如下所示:

代码语言:javascript
复制
Name | number
---------------
Jack | 2[[[131546ddfd
Ali  | 2132*&^1ASEF32154

我想找到这个消息灵通的行。我不能使用“Like”,因为“Like”会使我的查询非常慢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-12 22:20:19

已更新以查找所有非数字字符

代码语言:javascript
复制
select * from Mytable where number like '%[^0-9]%'

关于性能的评论,使用clr和正则表达式可能会略微加快速度,但此查询的大部分成本将是逻辑读取的数量。

票数 5
EN

Stack Overflow用户

发布于 2011-01-13 03:43:51

有点超出常规,但您可以这样做:

  1. 将表中的数据批量复制到平面文件中
  2. 创建一个表,该表的结构与原始表相同,但number列具有正确的数值类型(例如int)。
  3. 将数据批量复制到这个新表中,确保将批处理大小指定为1和一个错误文件(不符合架构的行将放入其中)
  4. 最终出现在错误文件中的行是在number列

中包含非数字的行

当然,您也可以使用一个游标和一两个临时表来做同样的事情……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4669779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档