16.

15.”SQL SERVER 2012 尝试读取或写入受保护的内存。这通常指示其他内存已损坏”-2016 年 02 月 14 日 17:15:13

1
解决方案: netsh winsock reset

14.MYSQL 中文乱码–2016 年 02 月 13 日 19:01:21

  • mysql5.5 及以上
  • Linux 下,修改/etc/mysql/my.cnf 文件,在指定位置添加如下代码
1
2
3
4
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8

-重启 mysql 服务

1
sudo /etc/init.d/mysql restart

-查看 mysql 数据库字符集

1
mysql> show variables like 'character%';

13.SQL 拼接字段查询–2015 年 10 月 16 日

  • Sql Server
1
SELECT CAST(COLUMN1 AS VARCHAR(10)) + '-' + CAST(COLUMN2 AS VARCHAR(10) ...)  as P FROM TABLE
  • Oracle
1
SELECT (COLUMN1 || '-' || COLUMN2) AS P FROM TABLE

12.SQL TRUNC() 截取字符串/日期–2015 年 12 月 10 日 11:29:48

1
2
3
有个需求就是 查询 相同日期(不同时间) 的 数量总和,这时就可以用到 TRUNC()函数把'时间'去掉

SELECT SUM(A.QTY) OVER(PARTITION BY TRUNC(A.DATE)) FROM TEST A WHERE A.DATE >= TO_DATE('DATE1','YYYY-MM-DD') AND A.DATE<=TO_DATE('DATE2','YYYY-MM-DD')

11.DISTINCT 去重复–2015 年 12 月 10 日 11:28:12

10.查询数据库中某一字段重复值–2015 年 10 月 16 日

1
select * fromwhere b in (select b fromgroup by b having count(*)>1)

09.sql 分页获取数据的 存储过程代码–2015 年 8 月 12 日 13:41:34

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE PROCEDURE GetListByPage
@pageSize int ,
@pageIndex int,
@total int out
AS
BEGIN
SET NOCOUNT ON;
declare @startIndex int ,@endIndex int
set @startIndex =(@pageIndex - 1)*@pageSize+1
set @endIndex = @pageIndex*@pageSize
select * from(
select rows=ROW_NUMBER() over(order by id desc),* from DR_Type where 1=1 ) t
where t.rows>=@startIndex and t.rows<=@endIndex
--total
select @total=COUNT(1) from DR_Type where 1=1
END
GO

08.sql server 的 sql 分页代码–2015 年 7 月 22 日 13:27:49

1
select * from (select *,row_number() over(order by p.Id desc) as num from qunlist p where 1=1 ) s where s.num between @startIndex and @endIndex

07.sql 从其他数据库中复制数据到另一个数据库 错误–2015 年 7 月 3 日 19:08:39

1
2
"仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'stulnfo'中的标识列指定显式值。"
说明有一列为自动增长,自动增长列为系统自己设定,不需要复制

06.Oracle SQL 分页–2015 年 7 月 18 日 18:32:31

1
2
3
4
SELECT *
FROM (SELECT ROWNUM AS rowno, t.*
FROM emp t ROWNUM <= indexEnd) s
WHERE s.rowno >= indexStart;

05.Oracle 报 SQL 大小写转换

1
2
转换为大写:UPPER(字段名)
转换为小写:LOWER(字段名)

04.如何把查询到的结果插入到另一个表中

1
insert into OEM_ORDER(OEM_CODE) select OEM_CODE from BASE_OEM where OEM_NAME ='阳光'  --OEM_CODE为相同字段

03.Oracle 报 ORA-01861: 文字与格式字符串不匹配’

1
2
3
查询 oracle 中 date 属性的值时,必须用 to_date('2015/05/29','yyyy-mm-dd hh24:mi:ss')转换,否则 会报错!

select * from book where PRD_DATE >=to_date('2015/05/29','yyyy-mm-dd hh24:mi:ss') and PRD_DATE <=to_date('2015/05/30','yyyy-mm-dd hh24:mi:ss') order by PRD_DATE desc

02.Oracle 替换符号

1
Oracle 替换符 用 ':' sql Server 中用 '@'

01.Oracle 报 ORA-01745: 无效的主机/赋值变量名

1
2
3
4
5
可能原因:

> - 在 sql 语句中少了','分隔符。
> - 在绑定变量时,出现变量名和 SQL 保留字相同的情况。(我当时用 替换符":date" 报这种错误)