2016-11-23 64 views
0

我想選擇從Oracle數據庫獨特的列,我的代碼是:的Oracle SQL錯誤:不同的情況下

select ID,distinct case when DM='ST1B' then MC else DM end from D_DZDY 

但是,它不工作。如果我刪除「獨立的」,它的工作原理: enter image description here

任何人都可以幫我解決這個問題?非常感謝! :d

+1

您正在使用'DISTINCT'與錯句法。請提供一些虛擬數據以及您的預期結果。 –

+0

您是否在尋找'選擇不同的ID,情況下,當DM = 'ST1B',然後從D_DZDY MC其他DM結束;'? – JSapkota

+0

如果您有10行具有相同的CASE值,您會期望看到什麼ID? –

回答

0

語法select distinct。在單個列上沒有distinct函數或運算符。

也許你打算:

select distinct ID, (case when DM = 'ST1B' then MC else DM end) 
from D_DZDY; 

這將返回的id不同對和case表達。

+0

不需要圍繞CASE –

+0

@DuduMarkovitz的括號。 。 。我總是把'case'放在括號內。我覺得它更容易看到的'case'結束,尤其是當它們嵌套 –

+0

註釋對於OP /讀者。由於這是OP代碼的另一個變化,因此澄清這僅僅是一種表面修飾是很重要的。 –

0

DISTINCT OPERATE在行,你應該使用這樣的語法:

select distinct ID,(case when DM='ST1B' then MC else DM end) from D_DZDY 

如果你只是想case語句推遲至今值,您可以使用此

select distinct (case when DM='ST1B' then MC else DM end) from D_DZDY 
+0

無需左右CASE –

+0

無需尖叫美國括號。請修復您的大寫鎖定鍵,它已損壞 –