我们有大量数据,教授要求我们执行以下操作:
艾米格雷的名字中有七个字。 (她的名字和姓氏之间的空格不计算在内。)J。J. Brown在他的名字中有十个。 (J. J.的空间和时期算作人物。)Allison Black-White在她的十八岁。 (连字符算作一个字符。)
创建一个名为A9T4的视图,该视图将显示组合名字和姓氏具有该大小的学生的大小和总数。两列标题应为Name_Size和Students。行应按降序排序。
注意:作为对工作的简单检查,A9中最长的名字有22个字符,三个最短的名字有7个字符。
答案 0 :(得分:0)
我使用了Oracle DUMP,SUBSTR和REGEXP_LIKE函数来获取计数。
http://www.techonthenet.com/oracle/functions/regexp_substr.php
CREATE TABLE SCHEMA1.NAMES( eval_name VARCHAR2(100 CHAR) );
插入SCHEMA1.NAMES值(' Amy Gray');
插入SCHEMA1.NAMES值(' J.J.Brown');
插入SCHEMA1.NAMES值(' Allison Black-White');
提交;
从SCHEMA1.NAMES中选择eval_name,REGEXP_SUBSTR(SUBSTR(DUMP(eval_name),11),' ^ [0-9] *') - 1;
- 返回 艾米格雷7 J. J. Brown 10 艾莉森黑白18
DUMP(' Amy Gray') - 给我们' Typ = 1 Len = 8:65,109,121,32,71,114,97,121'
SUBSTR(DUMP(' Amy Gray'),11) - 从第11位开始,给我们 ' 8:65,109,121,32,71,114,97,121'
REGEXP_SUBSTR(SUBSTR(转储(' Amy Gray'),11),' ^ [0-9] *') - 给我们' 8' ;,字符串开头的所有数字' ^'到第一个非数字,':'
- -1删除名字和姓氏之间的预期空格。