• This:

    declare @people as table (

    person varchar(20),

    dob date

    )

    declare @SDate as date = '5/3/2013';

    insert into @people(person,dob)

    values ('Frank','3/20/1990'),

    ('Joey','12/31/2000'),

    ('Sue','2/6/2012'),

    ('Mary','4/1/2013'),

    ('Bil','5/3/2012'),

    ('Bob','1/1/2013'),

    ('Will','10/1/2012')

    SELECT person,

    dob,

    case when datediff(month, dob, getdate()) - case when dateadd(month, datediff(month, dob, getdate()), dob) > getdate() then 1 else 0 end < 12

    then cast(datediff(month, dob, getdate()) - case when dateadd(month, datediff(month, dob, getdate()), dob) > getdate() then 1 else 0 end as varchar) + ' Months'

    else cast((datediff(month, dob, getdate()) - case when dateadd(month, datediff(month, dob, getdate()), dob) > getdate() then 1 else 0 end) / 12 as varchar) + ' Years'

    end as age

    FROM @people

    WHERE case when datediff(month, dob, getdate()) - case when dateadd(month, datediff(month, dob, getdate()), dob) > getdate() then 1 else 0 end < 12

    then datediff(month, dob, getdate()) - case when dateadd(month, datediff(month, dob, getdate()), dob) > getdate() then 1 else 0 end

    else ((datediff(month, dob, getdate()) - case when dateadd(month, datediff(month, dob, getdate()), dob) > getdate() then 1 else 0 end) / 12) * 12

    end between 4 and 144