我需要这样做:
SELECT
COLUMN1,
COLUMN2,
CASE SOMETHING WHEN 0 THEN 'SOMETHING'
ELSE
CASE SOMETHING1 WHEN 'SOMETHING2' THEN (Here I need my value from other table)
ELSE
...
ELSE
...
END
END
AS SOMETHINGSPECIAL
...
...
...
Run Code Online (Sandbox Code Playgroud)
整个选择非常复杂,抱歉。
在 () 中 THEN 之后的地方,我需要从其他表中取出特定值。我已经尝试了几乎所有来自连接的东西,放在那里SELECT WHERE
或CASE WHEN
声明它总是会出现一些错误。关键词缺失等
也可能问题出在 () 内部有长连接:''
我需要将其他表中的特定值放入该连接中。它要么不想让我CASE WHEN
在那之后使用其他的THEN
,要么我做错了什么。
编辑(抱歉,不想t post entire query don
在工作中遇到问题):
SELECT
A.SOMETHING
CASE WHEN A.LIST_ID IN ('something','something') THEN '<A HREF="something?thresholdId=something' || GET_SITE_SUFFIX() || chr(38) || 'task=runSQL' || chr(38) || 'parseParams=true' || chr(38) || 'list_id=' || A.LIST_ID || chr(38) || 'list_name=' || A.LIST_NAME || '"> (MY VALUE FROM OTHER TABLE HERE) </A>'
END
AS SOMETHINGSPECIAL
FROM SOMETABLE
...
Run Code Online (Sandbox Code Playgroud)
(我的值来自其他表)我尝试在那里放置 Select 语句条件、Case 语句以从其他表中取出该值,但它只会给我错误。
您可以使用相关子查询:
(CASE SOMETHING
WHEN 0 THEN 'SOMETHING'
ELSE (CASE SOMETHING1
WHEN 'SOMETHING2' THEN (select value from othertable ot where ot.col = x.col)
ELSE . . .
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要嵌套案例。您可以将其写为:
(CASE WHEN SOMETHING = 0 THEN 'SOMETHING'
WHEN SOMETHING1 = 'SOMETHING2' THEN (select value from othertable ot where ot.col = x.col)
ELSE . . .
END)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
38351 次 |
最近记录: |