一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' 二.包含英文字符 select * from 表名 where 列名 like '%[a-z]%' 三.包含纯数字 select * from 表名 where 列名 like '%[0-9]%' 上面的正则表达式,只能用like选出该字段中含有中文/英文/数字的人,那如果需求是选出姓名全部是中文的人,要如何做? sqlserver中有函数len,以及datalength 可将字段名强制类型转换成
原文地址:SQL 判断字段中指定字符出现的次数 原理:将指定字符转换为空,原长度减去转换后的长度就是指定字符的次数. 在做数据处理时遇到一个SQL操作的问题就是有一列关键词字段,字段中包含各种乱七八糟的字符,其中有一个双引号“ 是关键词中不需要的,所以需要去掉,而一般只有带两个”的才需要去除,所以首先得先找到含有双引号的且双引号出现两次的值,然后删除.这里提取指定符串在 字段中的出现次数SQL为: select * from google_keyword where len
最近在做数据库从sybase到oracle的迁移工作,sybase数据库表bcp导出后,通过sqlldr导入到oracle数据库,然后oracle数据库通过spool按照sybase数据库bcp的格式导出,进行比对,看两边的文件是否一样.但是出现了一个问题,导致两边的文件不一样,什么问题了,因为某些表中的某些字段中存在换行符,在sybase中bcp导出时,为一行,oracle数据库spool导出为两行,导致最后用comm -3比较的时候两边文件不一样.那么查询字段中的值是否有换行符呢? 1. s
取 a 字段里有字符x后面的数 right(a, charindex('x',reverse(a))-1)) reverse(字段) 这个函数是把字段倒过来并转换成nvarchar类型 取 a 的后3位 right(a,3) 取字段 a中字符串 x 到 y 之间的字符串假设(x=2,y=7) substring(a,CHARINDEX('2',a),CHARINDEX('7',a)-CHARINDEX('2',a)+1) 如果a=G000207858 那么得出来的结果就是207
SELECT * FROM T_NAME WHERE REGEXP_LIKE(COLNAME, '( )+'); SELECT * FROM T_NAME WHERE length(COLNAME) > length(trim(COLNAME)); SELECT * FROM T_NAME WHERE substr(字段,-1)=' ';
最近在获取数据时,发现程序读取的字段中含有\r\n字符,检查数据库表中的数据,发现是varchar字符串中包含了换行符.导入数据导致了这一情况出现. 回车换行 不同系统的行结尾符号并不同,如下: linux/unix下的行结尾符号是\n windows中的行结尾符号是\r\n Mac系统下的行结尾符号是\r 查找换行符 select * from table where collum like '%'+CHAR(10) + '%' --linux下的换行符 or collum like '%'+