TSQL挑战 - 第四题 - 20110702
时间:2011-07-02
来源:互联网
本帖最后由 rdcwayx 于 2011-07-02 10:57 编辑
看大家挺有兴趣这套挑战题,我就继续往下贴。
欢迎来做TSQL挑战题4
这次是个比较简单的挑战, 目的是找出合法的SSN号, 希望大家用各种不同的方法去解。
匹配的规则:
1. SSN格式为 XXX-XX-XXXX , X代表一个数字,只包括数字
2. 前三个数不能在734 和 749之间
3. 前三个数不能大于772
4. 前三个数(地区号码)不可以是 666
5. 三个数字组中,不允许全零。 比如 000-12-1234, 123-00-1234 or 123-12-0000 等都是不合法的
6. 数字 987-65-4320 到 987-65-4329 是不合法的。
这个数输入文件
复制代码
这个是希望的输出:
复制代码
看大家挺有兴趣这套挑战题,我就继续往下贴。
欢迎来做TSQL挑战题4
这次是个比较简单的挑战, 目的是找出合法的SSN号, 希望大家用各种不同的方法去解。
匹配的规则:
1. SSN格式为 XXX-XX-XXXX , X代表一个数字,只包括数字
2. 前三个数不能在734 和 749之间
3. 前三个数不能大于772
4. 前三个数(地区号码)不可以是 666
5. 三个数字组中,不允许全零。 比如 000-12-1234, 123-00-1234 or 123-12-0000 等都是不合法的
6. 数字 987-65-4320 到 987-65-4329 是不合法的。
这个数输入文件
- SET NOCOUNT ON;
- DECLARE @t TABLE (SSN VARCHAR(15))
- INSERT INTO @t (SSN) SELECT '123-45-6789'
- INSERT INTO @t (SSN) SELECT '123-45-67.89'
- INSERT INTO @t (SSN) SELECT 'ABC-12-3455'
- INSERT INTO @t (SSN) SELECT '123-45-67890'
- INSERT INTO @t (SSN) SELECT '123-456789'
- INSERT INTO @t (SSN) SELECT ' 123-45-6789'
- INSERT INTO @t (SSN) SELECT '12345-6789'
- INSERT INTO @t (SSN) SELECT '123456789'
- INSERT INTO @t (SSN) SELECT '123-12-1234'
- SSN
- ---------------
- 123-45-6789
- 123-12-1234
作者: rdcwayx 发布时间: 2011-07-02
本帖最后由 yinyuemi 于 2011-07-02 11:36 编辑
复制代码
- 条件好多!
- echo "SET NOCOUNT ON;
- DECLARE @t TABLE (SSN VARCHAR(15))
- INSERT INTO @t (SSN) SELECT '123-45-6789'
- INSERT INTO @t (SSN) SELECT '123-45-67.89'
- INSERT INTO @t (SSN) SELECT 'ABC-12-3455'
- INSERT INTO @t (SSN) SELECT '123-45-67890'
- INSERT INTO @t (SSN) SELECT '123-456789'
- INSERT INTO @t (SSN) SELECT ' 123-45-6789'
- INSERT INTO @t (SSN) SELECT '12345-6789'
- INSERT INTO @t (SSN) SELECT '123456789'
- INSERT INTO @t (SSN) SELECT ''123-12-1234" |\
- awk --re-interval -F\' '
- BEGIN{print "SSN:";print "-------"}
- $2~/^[0-9]{3}-[0-9]{2}-[0-9]{4}$/&&split($2,SSN,"-")==3{
- if(SSN[1]>772||(SSN[1]>734&&SSN[1]<749)||SSN[1]==666||SSN[1]*SSN[2]*SSN[3]==0||(SSN[1]SSN[2]SSN[3]>987654320&&SSN[1]SSN[2]SSN[3<987654329)){}
- else{print $2}}'
- SSN:
- -------
- 123-45-6789
- 123-12-1234
作者: yinyuemi 发布时间: 2011-07-02
支持!先占个座位啦:emn23:
作者: lionfun 发布时间: 2011-07-02
本帖最后由 昭襄王 于 2011-07-02 13:14 编辑
3. 前三个数不能大于772
6. 数字 987-65-4320 到 987-65-4329 是不合法的。
条件3造成了条件6多余啊。
还是我理解错了?
3. 前三个数不能大于772
6. 数字 987-65-4320 到 987-65-4329 是不合法的。
条件3造成了条件6多余啊。
还是我理解错了?
作者: 昭襄王 发布时间: 2011-07-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28