`
netxdiy
  • 浏览: 679921 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL server的一道入门面试题背后的思考

 
阅读更多

最近看到一个SQL Server的小例子,发现完全可以作为SQL server的一道入门面试题。题目如下:

例:有一合同表Contract

Id Name Total buget

1 合同名称 100 102,22

2 合同名称2 300 ,102,22,

3合同名称3 200 ,103,23,

要求:用SQL语句更新表的buget字段,如果前后没有","要加上","(即一个英文逗号)。(10分)

创建表数据:

分析:这道题乍看很简单,由于肯定用到Replace,所以很自然的结合left,right,从而得到以下语句

方法一

如果能写成一个 SQL语句,可以加1分。

如果能从字符串的开关和结尾这个思路出发,结合Reverse,可以提到如下方法:

方法二:

该方法,主要涉及charindex函数和reverse函数。

说实话,我当时就这两种思路,这也是SQL中常见的基本用法。但出人意料的第三种方法出现了。

方法三:

解析:该方法最主要的亮点不在于语法的精妙,而在于其思路的异于常规。先给两边补上逗号,再替换双逗号为单逗号。这在实际编程中确实难能可贵。换句话说,如果没有事先思考过的话,这反映了解题者反应敏捷,思路开放。因此,至少可以再加3分。

当然,此语句其实还是有bug,比如如果原bug字段中间有两个逗号,那么在Replace时就会更新掉不应该更新的内容。不过,稍加修正,限定replace的范围即可,

受此思路启发,可以引申得到以下类似方法:

方法四:

该方法是先去掉两边的逗号,再给每条记录加上逗号,比起方法三来,稍显繁琐,这也反衬了方法三的巧妙。

当然,也可以结合前面的思路稍作修正,这里就不再赘述,请读者自己思考。

感悟:释迦牟尼说过“人生需要经过六项修炼:布施、持戒、忍辱、精进、禅定、智慧。”,SQL编程,或C#、Java,甚至Javascrip的某个领域也是如此。技术是死的,思路是鲜活的, 有时候,思路能轻易地突破技术很难实现的死角 到了一定程度时,会发现潜意识里已经被惯性思维塞满,而无法接受新鲜思维方式或思路,如果一段时间内持续如此,那么,我们应该警醒,把自己的头脑放空,把自己置于一个初学者的地位,重新开始“精进”的修炼!

邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn


分享到:
评论

相关推荐

    SQL Server 2005(入门到精通教程+常考笔试面试试题)

    1、sqlserver2005概述 2、T-SQL查询 3、事务与锁 4、索引 5、约束、同义词、缺省值、自定义数据类型、规则 6、视图、存储过程、函数、游标与触发器 7、数据库安全 8、备份与恢复 9、分区表 10、数据库优化 11、开发...

    SQL Server2005入门PPT

    SQL入门资料,内含面试题,练习题等,里面有全套的PPT,还有课间练习,入门必备

    一本精心整理的SQL Server精华手册,旨在为广大数据库从业者和学习者提供一份全面而实用的学习指南

    (3)手册还整理了大量SQL Server的经典面试题,涵盖了基础知识、技巧应用、常见问题等多个方面,帮助您更好地应对面试挑战,展现自己的专业水平。(4)本手册适用于广大数据库管理员、开发人员、测试人员以及对SQL ...

    SQL SERVER中的存储过程和游标的使用大综合

    不错的培训资料和作为入门和提高之用。希望各位能够不断的提升自己的技能。

    java面试题以及技巧

    │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念...

    net面试题.。。。。。

    名入门的asp.net程序员应该掌握的知识: (1)熟练使用Sql Server中企业管理器、查询分析器和事件探查器,能熟练编写T-SQL、存储过程、用户自定义函数、视图、触发器;

    java面试题及技巧4

    │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念...

    java面试题及技巧3

    │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念...

    java面试题以及技巧6

    │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念...

    VC source insight pc-lint

    散文集 1 source 1 ss vc 1 入门 2 1 面试题 1 delphi 1 java 1 经典 1 基础 1 全集 1 windows 2 1 管理 1 设计 1 数据库 1 数据结构 1 1800例 1 电子书 1 c++沉思录 1 答案 1 server 1 sql 1 edition 1 3rd 1 ...

    java面试题目与技巧1

    │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念...

    LINUX_I2C驱动程序

    技巧(1) windows(2)(1) pc-lint(1) insight(1) source(1) 入门(2)(1) ss,vc(1) 基础(1) delphi(1) 面试题(1) .source(1) in(1) thinking(1) 设计(1) 数据库(1) server(1) 管理(1) 数据结构(1) 电子书(1) c++沉思录(1...

    C程序设计语言(第2版·新版中文)

    sqlserver2005技术内幕:t-sql程序设计part1(中文完整版分4份下) C# 编程实例与技巧 本周上传用户排名 122个star20100906 43个aa3323036 28个sai5201314vicky 28个ltx0724 26个fengboss2010 23个zhoulei3862422 20...

    asp.net知识库

    在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...

    asp.net 面试 笔试题目[附答案]第1/3页

    一名入门的asp.net程序员应该掌握的知识: (1)熟练使用Sql Server中企业管理器、查询分析器和事件探查器,能熟练编写T-SQL、存储过程、用户自定义函数、视图、触发器; (2)了解ASP.net服务器控件的生命周期; ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看...11 强插一道面试题 12 Model连表操作梳理 13 多对多自关联 14 Model操作补充 15 再插两道JavaScript面试题 16 Model操作之select_related以及...

    各种各样的手册打包(jquery,css,php,linux,smarty)

    因为只允许传60M以下就只罗列以下手册了哈 《 ADOdb.Manual ...史上最全的IT面试题集 易语言专用API函数命令8 样式表滤镜手册 正则表达式30分钟入门教程 精美购物电子书 花之盟原型 (2) 花之盟原型

Global site tag (gtag.js) - Google Analytics