簡體   English   中英

Oracle SQL CASE條件=比較不能正常工作?

[英]Oracle SQL CASE condition = comparison not working properly?

我有這個SQL,

  (CASE 
  WHEN CUST_TRANS.ADJ_IND = 'N' THEN 1
  ELSE 0
  END) AS test_N,

我有一條記錄行,其ADJ_IND(VARCHAR2)為'N'。 但是CASE的結果將始終返回0,為什么?

這只是簡單的字符比較吧? 下表是表格結構的截斷(敏感性)。 如果您需要更多詳細信息,請告訴我。

TBL_CUST_TRANS

嘗試這個 -

(CASE CUST_TRANS.ADJ_IND 
 WHEN  'N' THEN 1
 ELSE 0
 END)

讓我知道它是否有效。


這是我嘗試過的SQL提琴-http://sqlfiddle.com/#!4/ afc78c/3

我假設您在SELECT語句中有“ CASE”子句。 ADJ_IND獲取的值將取決於SELECT語句的WHERE條件。 我相信這里發生的是,SELECT查詢正在將“ ADJ_IND”的值提取為“ Y”。 因此,您的case子句返回的值為0。

表中的值

我在本地做了同樣的測試用例,答案按預期來了。 下面是我的代碼:

CREATE TABLE tst_dum
(adj_ind VARCHAR2(1)); 
INSERT INTO tst_dum VALUES
('N');
SELECT * FROM tst_dum;
SELECT (
  CASE
  WHEN tst_dum.adj_ind = 'N'
  THEN 1
  ELSE 0
  END) AS test_N
FROM tst_dum;

隨附結果的屏幕截圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM