易截截图软件、单文件、免安装、纯绿色、仅160KB

access中case替代方法

access中case替代方法
2009-12-26 14:01
SELECT
UserPassportID as PassportID,
UserID,
GrantorID,
Case ObjectTypeID
When 1 then ObjectID
End
as TerminalID,
Type, Flag, GrantDate, Validate, Invalidate
from UserPassport
在SQL里能执行,但在Access里总提示语法错误(操作符丢失).在查询表达式'Case ObjectTypeID
When 1 then ObjectID
End'中?
Sql:
select bb,cc,case aa when '一星级' then '*'
when '二星级' then '** '
when '三星级' then '*** '
when '四星级' then '**** '
when '五星级' then '***** '
end
from aaa
Access:
select   bb,cc,iif(aa='一星级','*',iif(aa='二星级','**',iif(aa='三星级','***',iif(aa='四星级','****',iif(aa='五星级','*****')))))
from aaa;
Access中Switch和Choose关键字的用法Access中程序流程函数有三个,Iif ,Switch
Switch关键字
Access中没有Case When的用法,所以对于某些筛选比较就显得很吃力。不过还好,Access中有一个Switch可以解决这个问题。Switch 的语法是:SWITCH( case_1, result_1[, case_2, result_2...])。Switch的计算顺序为从左到右,将返回第一个为true的case对应的result。ACCESS对Switch有预编译(基本能够写进ACCESS的Sql都有预编译,ACCESS不支持Execute(SqlString)的用法),所以Switch中的条件和结果不能有逻辑错误和语法错误,否则不能执行。
实例:表tUser中有字段sex Text(1),用于存储用户性别,其中,如sex='m',用户为男性;sex='f',用户为女性;其他情况为保密。为了便于sql语句的说明,我们假设还有其他两个字段,userid和username。
在SqlServer中,如果要在搜索结果中直接显示性别的名称SexName(不是m/f之类的代码),使用Case When很方便。
SELECT UserID,
             UserName,
             SexName = WHEN LCASE(Sex)
            CASE 'm' THEN N'男'
            CASE 'f' THEN N'女'
            ELSE N'保密' END
from tUser
ACCESS不支持WHEN CASE的用法。虽然不那么灵巧,但是用Switch可以解决这个问题。
SELECT UserID,
       


相关文档:

access操作

uses
ADODB;
procedure TForm1.SetupTable(sender:tobject);
Var
adocon1:TADOConnection;
strSQL:string;
Const
SConnectionString= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';
begin
adocon1:=TADOConnection.creat(self);
adocon1.ConnectionString:=format(S ......

解决SQL Server转ACCESS自动编号问题

1.打开SQL server enterprise mananger "企业管理器"
在你要导出的 SQL数据库上鼠标右键菜单:所有任务-》导出数据

2.回出现一个导出向导窗口。
选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改。

3.进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库。注意选择数据源类型为&ld ......

采访分布式数据访问层(Data Access Layer)

分布式(Distributed)数据访问层(Data Access Layer)(以下简称DAL)是综合MySQL Proxy、Memcached、集群等等技术优点而构建的一个软件系统。目的是为了解决在构建大中型网站时遇到的和数据访问有关的诸多问题,如怎么使得切库分表透明化,如何使得缓存存取清除自动化,怎样才能更好地防止服务单点故障等等 ......

Java如何连接Access数据库(两种方式实例代码)

import java.sql.*;
public class ConnectAccess {
/**
* 初学者请注意:
* 1:先建立一个access文件a1.mdb,并放在D:\下;
* 2:在数据库文件a1.mdb中建立一个表Table1;
* 3:为Table1添加一列,并插入至少一条记录;
* 4:本文是一个完整的类,直接拿去运行就可以。
*/
public static void main(Stri ......

总结一点Access与Sqlserver的sql的差异

最近整理出来的.如果不完全的话希望大家补充.
在access中,转换为大写的sql函数是ucase,在sqlserver中,转换为大写的函数是upper;在access中,转换为小写的函数是lcase,在sqlserver中,转换为小写的函数是lower;在access中,取当前时间的函数是now,另外还有一个取日期函数date,在sqlserver中,取当前的函数是getdate ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号