2013-03-01 38 views
2

我在Postgres中執行SQL查詢,該查詢選擇一個數字字段。我需要顯示一個字符串值,因爲這SELECT的結果,所以我使用的是CASE聲明是這樣的:在ELSE CASE上使用轉換SQL查詢

Select 
case numeric_field 
when 100 then 'some string' 
when 200 then 'some other string' 

的問題是,如果數字域爲其他值(如300例如)我需要顯示這個值(作爲一個當然的字符串)。我試圖把一個CONVERT上其他人這樣

... 
else CONVERT(varchar(10),numeric_field) 

但它沒有奏效。我該怎麼做呢?

+1

'CONVERT'是,到目前爲止,因爲我知道,只有在SQL的SQL方言(在MS SQL Server和Sybase中找到) – 2013-03-01 14:24:24

回答

3
SELECT CASE numeric_field 
      WHEN 100 THEN 'some string' 
      WHEN 200 THEN 'some other string' 
      ELSE numeric_field::text 
     END AS result 
  • 你的說法是不完整的,END失蹤了。 Read the manual here.
  • 要輸出的數字字段作爲文本,只需將其轉換爲文本:numeric_field::text,這是SQL標準調用的Postgres的具體簡稱:

    cast (numeric_field AS text) 
    
+0

非常感謝,我沒有把節省空間的結束:P,但你的解決方案工作得很好,再次感謝。 – xiidarkevil 2013-03-01 14:29:49