我需要查询一个设计的数据库,以便NVARCHAR列保持客户端的年龄。我希望小组客户使用
GROUP BY age / 10
但是当引擎遇到像'20 .10.1984'这样的字符串时(某人输入了他的bithday而不是年龄),我的查询失败了。
“坏”年龄的百分比非常小,所以我只想跳过年龄不能转换为INT的记录。
有一种简单的方法吗?
谢谢!
答案 0 :(得分:4)
添加WHERE IsNumeric(年龄)= 1
像这样:
CREATE TABLE #temp (age NVARCHAR(20))
INSERT INTO #temp
SELECT '22'
UNION
SELECT '24'
UNION
SELECT '20.10.1984'
UNION
SELECT '50'
SELECT age/10, COUNT(*)
FROM #temp
WHERE ISNUMERIC(age) = 1
GROUP BY age/10
DROP TABLE #temp