两个值之间的计算列

时间:2013-06-05 05:14:59

标签: sql sql-server sql-server-2008-r2 calculated-columns

我有一个PERSON表,其中有两列(当然我有其他人,但我只需要两个)名为AgePerson_Type。现在根据Age值,我必须Person_Type作为婴儿,儿童和成人。

Age    Person_Type
0 to 3     Infant
4 to 12    Child
>=13    Adult

我在计算列中尝试了以下但它无效。任何想法怎么办?我很困惑。

(case when [Pax_Type_Id]=(3) OR [Pax_Type_Id]=(2) OR [Pax_Type_Id]=(1) OR [Pax_Type_Id]=(0) then 'Infant' when [Pax_Type_Id]=(12) OR [Pax_Type_Id]=(11) OR [Pax_Type_Id]=(10) OR [Pax_Type_Id]=(9) OR [Pax_Type_Id]=(8) OR [Pax_Type_Id]=(7) OR [Pax_Type_Id]=(6) OR [Pax_Type_Id]=(5) OR [Pax_Type_Id]=(4) then 'Child' when [Pax_Type_Id]>=(13) then 'Adult'  end)

2 个答案:

答案 0 :(得分:2)

你可以试试这个:


SELECT AGE, CASE WHEN AGE BETWEEN '1' AND '3' THEN 'INFANT'
            WHEN AGE BETWEEN '4' AND '12' THEN  'CHILD'
            WHEN AGE >='13' THEN 'ADULT' ELSE '' END PERSON_TYPE
 FROM PERSON

答案 1 :(得分:-1)

SELECT CASE WHEN Age BETWEEN 0 AND 3 THEN 'Infant'
         WHEN Age BETWEEN 4 AND 12 THEN 'Child'
         WHEN Age >=13 THEN 'Adult'
       END AS Person_type
FROM PERSON
相关问题