2013-11-27 59 views
1

我有一個表名爲MINIMUM_AGE的字段。存儲在此字段中的值是nvarchar類型:SQL服務器將字符串轉換爲整型檢查值,然後投射

17 years 
54 years 
N/A 
65 years 

我想申請該列上的WHERE子句來檢查了一定的年齡範圍。爲此,我需要從字段值中解析出年齡。

所以,我想我需要選擇前兩個字符,然後將它們轉換爲整數。此外,有些字段可能不包含前兩個字符的數字。有些可能只是N/A。所以,我需要在投射前檢查一下。

有人可以解釋如何做到這一點?

回答

2

下面是一個說明下面查詢SQL Fiddle

SELECT CASE 
    WHEN MINIMUM_AGE <> 'N/A' 
    THEN CAST(LEFT(MINIMUM_AGE, 2) AS int) 
    ELSE 0 
    END 
FROM MyTable 

注:CASE表達式只能返回一個數據類型。所以,在上面的例子中,如果MINIMUM_AGEN/A那麼它將返回0

如果你寧願它返回,然後使用以下命令:

SELECT CASE 
    WHEN MINIMUM_AGE <> 'N/A' 
    THEN CAST(LEFT(MINIMUM_AGE, 2) AS int) 
    END 
FROM MyTable 
相關問題