我有一个SQL表,其中有(Id,Fname,Lname,Age,PNR_NO)列。 “年龄”列仅包含儿童的年龄,而对于其他年龄,则为空,为区分黑白成人和儿童,我们将前缀设置为“ Chd”。在来自我的前端应用程序的“子项”的“ Fname”列中。
现在,我需要将Adults的总数作为AdultNum,将Childs的总数作为ChildNum,Age1,Age2。我之所以需要这些,是因为我需要以此顺序将它们存储在C#文件的DataTable中,以便进行一些计算以获得费率。
我尝试了下面的代码,但是它只给出了一列的总数。
SELECT count(*) AS ChildNum FROM hc_data WHERE Fname LIKE'Chd_%' and
PNRNO = '18717162620'
请帮助我达到预期的效果。 非常感谢您的支持。 谢谢!
答案 0 :(得分:0)
我想这就是你想要的吗?
使用Fname上的CASE语句区分儿童和成人
SELECT SUM(CASE WHEN Fname LIKE 'Chd_%' THEN 1 ELSE 0 END) AS ChildNum,
SUM(CASE WHEN Fname NOT LIKE 'Chd_%' THEN 1 ELSE 0 END) AS AdultNum
FROM hc_data