Sql 如何使用select修改大小写以从表中返回附加值?
此查询:Sql 如何使用select修改大小写以从表中返回附加值?,sql,oracle,Sql,Oracle,此查询: SELECT T.DID , (CASE WHEN A.AMT >= 150 AND T.DVAL LIKE '%ID%' THEN '1' ELSE '0' END Q_A) FROM PTD T JOIN CUST.ACT A ON T.DID = A.DID WHERE T.DID IN (1111 , 2222) 返回: 1 0 我
SELECT T.DID , (CASE
WHEN A.AMT >= 150 AND
T.DVAL LIKE '%ID%' THEN
'1'
ELSE
'0'
END Q_A)
FROM PTD T
JOIN CUST.ACT A ON T.DID = A.DID
WHERE T.DID IN (1111 , 2222)
返回:
1
0
我正在尝试修改此查询,以便为给定查询返回DID
。换句话说,修改查询以返回:
1111 , 1
2222 , 0
以下是我的尝试:
SELECT T.DID , (CASE
WHEN A.AMT >= 150 AND
T.DVAL LIKE '%ID%' THEN
'1'
ELSE
'0'
END Q_A)
FROM PTD T
JOIN CUST.ACT A ON T.DID = A.DID
WHERE T.DID IN (1111 , 2222)
但我收到一个错误:
ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
如何更新查询以便从表中返回
DID
值?在第二次查询中,关闭参数放错了位置。它需要在结尾之后
因此它包围了大小写
表达式:
SELECT T.DID,
(CASE WHEN A.AMT >= 150 AND T.DVAL LIKE '%ID%'
THEN '1' ELSE '0'
END) AS Q_A
FROM PTD T JOIN
CUST.ACT A
ON T.DID = A.DID
WHERE T.DID IN (1111, 2222)
原始查询确实返回
T.DID
。问题是列别名Q_A不属于括号内。但是为什么要在大小写
表达式周围加括号呢?如果是这样的话,这个问题不应该以打字错误结束吗?