遍历字符串 我觉得首先要提出一个疑问: 一个数据库本身就是用于存储的,遍历字符串究竟有何意义? 先看如何实现的,毕竟sql service 是没有for循环,也没有loop和while的. select SUBSTRING(e.ENAME,t.ID,1) as sub from emp e,T10 t where e.ENAME='JONES' and t.ID<=len(e.ENAME) 的确是遍历了这个字符串JONES. 原理也十分的简单: select * from T10 T10 可以看…
sql语句将字符串转换为数字默认去掉单引号中的空格,遇到空格作为字符串截止, SELECT '123 and 1=1' +0 结果为123 MySQL里面如何用sql语句让字符串的‘123’转换为数字的123? 方法一:SELECT CAST('123' AS SIGNED integer);方法二:SELECT CONVERT('123',SIGNED);方法三:SELECT '123'+0; 同样,当需要将一列字符串转换为数字也可以使用此方法,或者需要用到字符串进行排序的时候可以使用到此方法…
create table UserType ( Id ,), Name nvarchar() not null ) go create table UserInfo ( Id ,), LoginPwd varchar() not ) not ) not check(Gender= or Gender=), Email varchar() not ) not ) default '这个人很懒,什么都没有留下', UserTypeId int foreign key references UserT…
新增连接查询而不影响其他连接查询 请看图: 这种情况我们一般会使用左连接的方式. select e.ENAME,d.LOC,eb.RECEIVED from emp e join dept d on(e.DEPTNO=d.DEPTNO) left join emp_bonus eb on(eb.EMPNO=e.EMPNO) order by 2 上面这种可以实现的,但是不利于我们在写code语句中的复用. 下面是一种标量子查询我的方式,可以帮助我们复用部分sql. select e.ENAME,…
方案一:使用内置的函数 SUBSTRING,CHARINDEX,LEN三个内置函数 理论: SUBSTRING语法   SUBSTRING ( value_expression , start_expression , length_expression ) 参数 value_expression:数据库字段 start_expression:指定返回字符的起始位置 length_expression:要截取的长度 返回类型 如果 expression 是其中一个受支持的字符数据类型,则返回字符…
1.添加字段: alter table  表名  add (字段  字段类型)  [ default  '输入默认值']  [null/not null]  ; 2.添加备注: comment on column  库名.表名.字段名 is  '输入的备注';  如: 我要在ers_data库中  test表 document_type字段添加备注  comment on column ers_data.test.document_type is '文件类型'; 3.修改字段类型: alter…
两种方式:exec (sqlStr);或exec sp_executesql @sqlStr;绝大多数情况下,应使用第二种方式来执行动态sql.因为这种方式能重用执行计划,并且更安全. 参考例子:https://bbs.csdn.net/topics/380030146 例如: ) ) ) SET @rc = 'SELECT ID,CsShowName from SCsinfoSource WHERE ID IN ('+@csIds+')' EXEC sp_executesql @rc或者 EX…
在SQL Server中默认对大小写是不敏感的,例如fname='peter'和fname='PETER'结果是一样的.但有时候用户会要求区分大小写,如验证密码等.这种情况下的处理办法就是在字段后加上collate Chinese_PRC_CS_AS_WS 如: select * from HRS_EMPLOYEE where EMPLOYEE_NAME='admin' AND PASSWORD collate Chinese_PRC_CS_AS_WS ='hongli' 是否区分大小写与排序规…
Postgresql 当中有四种方式获取当前时间.  一:now()      通过now()获取的时间是最完整的时间,包括时区,秒也保留到了6位小数.      select now();      得到的结果如下      '2014-12-24 09:28:31.545145+08' 二:current_timestamp效果是和now()一样的. 三:current_time        只显示当前的时间,不包括日期       select current_time;       得…
查找只存在一个表中的数据 有两张表: EMP: select * from emp DEPT: 他们有共同的属性:deptno 现在要查询EMP 中的deptno不等于DEPTNO的deptno项. 解析: select distinct DEPTNO from EMP where DEPTNO not in ( select DEPTNO from DEPT ) 注意: 因为需要查询的是DEPTNO,所以需要排除掉重复项. 其次上面的写法,如果DEPTNO在DEPT有null项上面的是错误的.…