【转】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) 收藏 举报
浙公网安备 33010602011771号