A. 如何用sql语言实现选出正确的电话号码
Oracle数据库操作
1,先选出正常11位号码
select decode( sign(length(电话号码)-11 ),0,电话号码) from table1;
2,再选出5为号码
select decode( sign(length(电话号码)-5 ),0,电话号码) from table1;
实际操作会有严格的约束,对于这种情况的避免,方式一在建表时通过约束来控制,将11位号码和特殊号码分开放两张表里。方式二是在前台通过JS脚本或其他验证插入数据的合法性。这样就避免你这种情况发生,所以你就别为此发愁了
B. SQL SERVER创建表时怎样表示电话号码
varchar类型就可以了,长度的话定义到20就可以了,另外就是看是手机号码还是固话号码了,可以设置成两列,就是一个是手机,一个是固话。都是varchar类型就可以了。因为有的是两种电话联系方式都有
C. 利用sql 写一个正则表达式 判断 是否为手机号码 11 位 + 数字... 变量@TelNo
我的想法和下面位朋友差不多,但是可以直接用:
在数据表中加需要约束的那一列的一个约束就行了!表达式如下:
where
([列名]
like
'13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
注释:[0-9]代表是选任一一个0-9中的数字作为当前位的数字。希望能对你有所帮助和启发。
D. SQL添加约束出错
你的【手机号码】字段中有不符合【你建的约束的数据】,把这样的数据删掉再建就可以了,为了方便起见。
1、先把数据转存到另外一个表中:
select
*
into
tmp
from
号码纪录;
2、删除原表数据
truncte
table
号码纪录;
3、增加check约束
alter
table
号码纪录
add
constraint
ck_手机号码
check(手机号码
like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]');
4、把符合条件的数据导回
insert
into
号码纪录
select
*
from
tmp
where
tmp.手机号码
like
'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]';
5、删除临时表
drop
table
tmp;
---
以上,希望对你有所帮助。
E. 怎样用SQL给电话号码添加约束
设你的列叫pho_num
表叫tablename
建立一个名叫length_11的check类型约束
alter
table
tablename
add
constraint
length_11
check
(
len(pho_num)=11
)
F. sql 2000,要求限制电话号码十一位,只能是数字~数据类型char(12),约束表达式怎么写
SQL Server 2000 没有, 就拿个 SQL Server 2005 的来凑个数。
不大清楚 SQL Server 2000 里面,有没有 PATINDEX 函数了。
CREATE TABLE #temp(
test char(12)
CONSTRAINT chk_test
CHECK (
LEN(RTRIM(test)) = 11 AND
PATINDEX('%[^0-9]%', RTRIM(test)) = 0)
);
-- 失败 长度不符合,且是英文
INSERT INTO #temp VALUES ('a');
-- 失败 长度不符合
INSERT INTO #temp VALUES ('1');
-- 失败 长度不符合
INSERT INTO #temp VALUES ('123456789012');
-- 失败 长度符合 但是英文
INSERT INTO #temp VALUES ('1234567890a');
-- 成功
INSERT INTO #temp VALUES ('12345678901');
G. sql server 定义电话号码在0-9之间
使用sql语句。
使用sql语句能实现电话号码限制在数字0-9。
在SQL Server 中,对于基本表的约束分为列约束和表约束。列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其它定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用“,”分隔,定义表约束时必须指出要约束的列的名称。