我有一個工作查詢,如下所示CASE語句:轉換爲CHAR值,返回不同的數據類型
SELECT DISTINCT col1, col2,
CASE
WHEN COUNT(DISTINCT col3_typeID) OVER (PARTITION BY col1) = 1
THEN col3_typeID <-- this is what interests me
WHEN COUNT(DISTINCT col3_typeID) OVER (PARTITION BY col1) > 1
THEN COUNT(DISTINCT col3_typeID) OVER (PARTITION BY col1)
END
COUNT(col4) OVER (PARTITION BY col1)
FROM table
-- joins
-- other conditions
我算什麼東西,如果COUNT() = 1
,然後我返回ID
而不是數字的的標識。理想情況下,我想返回該值爲ID
的CHAR值。如果我試圖用CHAR
類型的列來代替上述的標線,我得到
ORA-00932: inconsistent datatypes: expected CHAR got NUMBER
我也試過DECODE()
爲:
THEN DECODE(col3_typeID, 1 , 'type1'
2, 'type2')
,但我得到了同樣的錯誤,當然,作爲這是一個基本的數據類型限制。
有沒有解決方案?
作品!我希望我可以有時多想一些。儘可能接受。非常感謝。 – Andrejs