Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用select修改大小写以从表中返回附加值?_Sql_Oracle - Fatal编程技术网

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不属于括号内。但是为什么要在
大小写
表达式周围加括号呢?如果是这样的话,这个问题不应该以打字错误结束吗?