2015-12-07 75 views
0

我試圖寫MSSQL相當於此查詢:的PostgreSQL到MSSQL陣列

(CASE WHEN (to_number((column1), '9') = ANY (ARRAY[(1)::numeric, (5)::numeric])) THEN 'Discontinued' WHEN (to_number((column1), '9') = ANY (ARRAY[(0)::numeric, (3)::numeric, (7)::numeric])) THEN 'Covered' ELSE 'Not Covered' END AS coverage_status,) 

回答

3

Postgres裏的陣列使用過於複雜,開始用(不說沒用)。這應該工作:

CASE 
    WHEN cast(column1 as integer) in (1,5) THEN 'Discontinued' 
    WHEN cast(column1 as integer) in (0,3,7) THEN 'Covered' 
    ELSE 'Not Covered' 
END AS coverage_status 
+0

biginit whas the trick。謝謝! –

+0

所以你能解釋這是如何工作的? to_number((column1):: text,'9':: text和列文本是63739029910,所以答案是1. 9得到一個與9s相同的數字的值,如果一個數字不可用,輸出空間,有3個9個。 –