日度归档:2019年10月10日

sqlserver 自定义排序的实现方法分享


摘要:
下文讲述sqlserver自定义排序的实现方法,如下所示:
实验环境:sql server 2008 R2

项目背景:
今天收到同事的一个需求,数据表中数据按照KeyId 为
21 排第一
3 排第二
19 排第三
29 排第四
其它排最后的排序规则,
下文将讲述实现此排序规则的两种方法,如下所示:

create table  [maomao365.com]
(keyId int,info  nvarchar(30))
go
----基础数据生成-----
insert into [maomao365.com]
(keyId,info)values
(1,'sqlserver'),(2,N'猫猫小屋'),
(3,'sql爱好者'),(20,N'sqlblog'),
(21,'mysql'),(29,N'maomao'),
(19,'csharp'),(2,N'other')
go

---自定义排序实现1 case when 
select keyId,info from 
[maomao365.com]
order by 
 case when keyId =21 then 1 
      when keyId =3 then 2
	  when keyId =19 then 3
	  when keyId =29 then 4
	  else 99
	  end 
	  asc  

----方法2:使用charindex实现
select keyId,info 
from  [maomao365.com]
  where keyId in (21,3,19,29) 
order by   CHARINDEX('|' + LTRIM(RTRIM(STR(keyId ))) + '|', '|21|3|19|29|')


go
truncate table [maomao365.com]
drop     table [maomao365.com]

mssql_sqlserver_自定义列值排序的方法分享

mssql_sqlserver_自定义列值排序的方法分享


相关阅读:
MSSQL sql server 字符串函数 charindex 功能简介
sqlserver order by关键字应用举例

MySQL实现“select into from”语法的两种方法分享


摘要:
我们深知MySQL数据库不支持 “select into from”语法,下文将讲述解决此类问题的方法分享,如下所示:

项目背景:
今天备份数据表时,采用sqlserver中的select * into tableNameBak from tableName ,
但是运行一直出现错误“1327 Undeclared variable”


我们需采用下面的方法变相实现”select * into from “语法

  ---备份数据表 'maomao' 至数据表 'maomao_bk'
 ---方法1:
 CREATE TABLE maomao_bk(SELECT * FROM maomao);
 ---方法2:
 INSERT INTO maomao_bk SELECT * FROM  maomao