2 回答
TA貢獻1883條經(jīng)驗 獲得超3個贊
澄清這個答案。雖然 OP 問題可以通過多個WHENin來解決CASE,但我的理解是這是偽代碼,OP需要子案例。在這種情況下,有一個錯誤 [我認(rèn)為] 會截斷字符串?dāng)?shù)據(jù)。下面的語法就是為了解決這個問題。我認(rèn)為,這個問題的價值在于數(shù)據(jù)切割而不是你可以使用多個WHEN
SELECT
CASE
WHEN myCol = 0 THEN 'Pending'
WHEN myCol = 1 THEN 'Completed'
ELSE 'In-Process'
END Status
FROM
(SELECT
CASE
WHEN (table1_qty_comp = 0) THEN 0
ELSE
CASE WHEN (table1_qty_comp >= table2_qty_req) THEN 1
ELSE 2
END
END AS myCol
FROM
table1 LEFT JOIN table2 ON table1_part = table2_part) t1
TA貢獻1816條經(jīng)驗 獲得超6個贊
Progress 數(shù)據(jù)庫將所有值存儲為可變長度,并且不支持任何寬度屬性。
Progress 4GL 非常樂意處理“過度填充”字段。這對于 Progress 應(yīng)用程序來說是正常的,但它適合 SQL 客戶端。
您正在運行 Progress 版本 9(它是古老的、過時的且不受支持的),因此您唯一的選擇是在客戶端上處理它(如帖子和 TS 的回答中所見)或運行提供的“dbtool”實用程序。dbtool 實用程序?qū)呙钄?shù)據(jù)庫并查找任何被過度填充的字段,然后調(diào)整“sql 寬度”,以便 SQL 客戶端準(zhǔn)確了解實際數(shù)據(jù)寬度。
- 2 回答
- 0 關(guān)注
- 214 瀏覽
添加回答
舉報
