Sql 查询技巧 某例 关于in的排序
在有时候使用in语句查询的时候,in语句中很多项,如15项,自己同时想让查询出来结果能够按照in语句中该字段顺序查询出来。
而Sql Server是默认按照自己的顺序排列出来的,所以一定会把结果集重新排序的。
而如果使用case when的方法虽然很繁琐,但也是可以实现的
select item_code,apply_dept,keeper_ename from item_master where
item_code in(
'BES.F.F.0006.N00',
'BQS.F.F.0076.N00',
'BQS.F.F.0079.N00',
'BQS.F.F.018B.F00',
'BQS.F.F.00BM.N00',
'BQS.F.F.00BX.N00',
'BQS.F.F.00CZ.N00',
'BES.F.F.0008.N00',
'BQS.Q.A.08FY.N00',
'BQS.F.F.00B0.N00',
'BQS.F.F.00D8.N00')
order by case item_code
when 'BES.F.F.0006.N00' then 1
when 'BQS.F.F.0076.N00' then 2
when 'BQS.F.F.0079.N00' then 3
when 'BQS.F.F.018B.F00' then 4
when 'BQS.F.F.00BM.N00' then 5
when 'BQS.F.F.00BX.N00' then 6
when 'BQS.F.F.00CZ.N00' then 7
when 'BES.F.F.0008.N00' then 8
when 'BQS.Q.A.08FY.N00' then 9
when 'BQS.F.F.00B0.N00' then 10
when 'BQS.F.F.00D8.N00' then 11
end
相关文档:
sql loader 工具它可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对blob等类型的数据有点麻烦。
在DOC下面输入:sqlldr userid=user/password@sid control=result.ctl
例子:
SQLLDR USERID=zero/zero@ORACLE CONTROL ......
错误如下:
Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different.
Character set conversion may cause unexpected results.
Note: you can set the client character set through the NLS_LANG environment variable or the NLS_LANG registry key in
HKEY_LOCAL_MACHINE\SOFTWARE\ ......
Window 2003 SQL2000远程连接的问题解决办法2008年10月07日 星期二 15:31一 看ping 服务器IP能否ping通。
这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。
二 在Dos或命令行下输入telnet 服务器IP 端口,看 ......
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER function [dbo].[Get_StrArrayStrOfIndex]
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
de ......
之前的SQL语句如下,查询很慢,6分钟多都没有结果显示,一开始我以为是6张表联合查询带来的速度慢的问题。
后来发现因为PO_D.ORDNO与PO_H.ORDNO相同,把绿色部分替换为紫色的部分,
把PO_D替换为PO_H,10秒钟就能查询出来
PS:PO_D中101401笔数据,PO_H中51341笔数据。
虽没有想明白替换之后提速到如此之快仅10秒,与6分 ......