从IIF进行大写转换 [英] CASE conversion from IIF
问题描述
我从SQL(访问)开始
I started off with SQL (access)
IIf(Len([CAT]) < 3,
Left([CAT],1) & 0 & Right([CAT],1),
[CAT]) AS CAT1,
[HD0] &
IIf([TABLE].[HD1]<>"00",
" / " & [HD1_ABR],
Null) &
IIf([HD2]<>"00",
" / " & [HD2_NAME],
Null) &
IIf([HD3]<>"000",
" / " & [HD3_NAME],
Null) &
IIf([HD4]<>"00",
" / " & [HD4_NAME]) AS NAME,
Oracle(Sql Developer)也做了
and did Oracle (Sql Developer)
Case
When length(cat) < 3
Then SubStr(cat,1,1) || '0' || SubStr(cat,-1,1)
Else cat
End cat1,hd0
Case
When TABLE <>"00"
then " / "
else HD1_ABR,null
当我在SQLDev中运行查询时,出现错误 在命令行错误:9列:4 错误报告: SQL错误:ORA-00923:找不到所需的FROM关键字 00923. 00000-未在预期的位置找到FROM关键字"
When I run query in SQLDev I get error Error at Command Line:9 Column:4 Error report: SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected"
推荐答案
MS Access语法与Oracle语法完全不同.没有方括号,并且SQL函数的名称不同. http://docs.oracle.com/cd/E11882_01 /server.112/e17118/functions.htm#SQLRF006
MS Access syntax is entirely different to Oracle syntax. No square brackets, and different names for the SQL functions. http://docs.oracle.com/cd/E11882_01/server.112/e17118/functions.htm#SQLRF006
Case
When length(cat) < 3
Then SubStr(cat,1,1) || '0' || SubStr(cat,-1,1)
Else cat
End cat1
这篇关于从IIF进行大写转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!