李晓亮的博客

导航

【转】VBA与T-SQL之间的函数比较;SQL Server的SQL语句如何在ACCESS中使用?

转自:http://www.access-cn.com/Article/Class5/Class20/200904/3120.html Visual Basic for Applications 与 SQL Server Transact-SQL 之间的函数比较 (ADP) 注释 本主题中的信息仅适用于 Microsoft access 项目 (.adp)。 下表比较了 Microsoft Visual Basic for Applications (VBA) 和 Microsoft SQL Server Transact-SQL 中的常用函数。有关 Transact-SQL 标量函数的详细信息,请参阅 SQL Server 文档。 注意 “升迁向导”将下列 VBA 函数(用于表有效性规则、字段验证和默认情况下)转换为对等的 Transact-SQL 函数。 字符串函数 VBA 函数 Transact-SQL 标量函数 ------------------------------------------------ Asc(x) ASCII(x) Chr$(x) CHAR(x) Lcase$(x) LCASE(x) LOWER(x) Len(x) DATALENGTH(x) Ltrim$( x) LTRIM(x) Mid$(x,y,z) SUBSTRING(x,y,z) Right$(x,y) RIGHT(x,y) Rtrim$(x) RTRIM(x) Space$(x) SPACE(x) Str$(x) STR(x) Ucase$( x) UCASE(x) UPPER(x) 转换函数 VBA 函数 Transact-SQL 标量函数 ------------------------------------------------ Ccur(x) CONVERT(money,x) Cdbl(x) CONVERT(float,x) Cint(x) CONVERT(smallint,x) Clng(x) CONVERT(int,x) Csng(x) CONVERT(real,x) Cstr(x) CONVERT(varchar,x) Cvdate(x) CONVERT(datetime,x) 日期函数 VBA 函数 Transact-SQL 标量函数 ------------------------------------------------ Date(x) CONVERT(DATETIME,CONVERT(varchar,GETDATE(x))) Dateadd("",x,y) DATEADD(, x, y) Datediff("",x,y) DATEDIFF(, x, y) Datepart("", x) DATEPART(, x) Day(x) DATEPART(dd,x) Hour(x) DATEPART(hh,x) Minute(x) DATEPART(mi,x) Month(x) DATEPART(mm,x) Now(x) GETDATE(x) Second(x) DATEPART(ss,x) Weekday(x) DATEPART(dw,x) Year(x) DATEPART(yy,x) 数学函数 VBA 函数 Transact-SQL 标量函数 ------------------------------------------------ Int(x) FLOOR(x) Sgn(x) SIGN(x) Rnd(x) ROUND(x) access911整理的其他函数 VBA 函数 Transact-SQL 标量函数 ------------------------------------------------ replace replace mid substring nz isnull iif case ... when ... then ... switch case ... when ... then ... 问题: 请问在access中不支持标准SQL语句的SELECT CASE 语句吗? 比如: select (case 小组名 WHEN '01' THEN 'FA' WHEN '02' THEN 'PRESS' END) AS 小组名 from deptinfo 老是报错说操作符丢失,应该可以的啊!哪位高手指点指点! 回答: SELECT CASE 不是标准的 SQL 语句,是 T-SQL ,MS SQL SERVER 的特例而已 在纯 access 环境可以将 select (case 小组名 WHEN '01' THEN 'FA' WHEN '02' THEN 'PRESS' END) AS 小组名 from deptinfo 改为 select switch(小组名='01','FA',小组名='02','PRESS') from deptinfo 当然,你也可以用 IIF , select iif(小组名='01','FA','PRESS') from deptinfo 但是在 ASP + MDB 或者 VB + MDB 这种环境你可以用 select 'FA' from deptinfo where 小组名='01' UNION ALL select 'PRESS' from deptinfo where 小组名='02' 来完成

posted on 2009-07-05 22:42  LeeXiaoLiang  阅读(309)  评论(0)    收藏  举报