我有这个 SQL 查询:
I have this SQL Query:
select prefix, code, stat, complete, COUNT(*) as Count
from table
group by prefix, code, stat, complete
order by prefix, code, stat, complete
前缀"列是一个字母数字值 (0-9a-zA-z).我想要的是让它如果前缀的值是一个数字,使数字等于0.如果它是一个字母,它会保持它的值.我试图在 group by 子句下面添加以下行:
The column 'prefix' is an alphanumeric value (0-9a-zA-z). What I want is to make it so that if the value of prefix is a number, to make the number equal to 0. If it is a letter, it will keep its value. I have tried to add the following line beneath the group by clause:
(case when prefix like '%[0-9]%' then 0 else prefix end)
但我收到错误消息将 varchar 值 'J' 转换为数据类型 int 时转换失败.".
But I get an error "Conversion failed when converting the varchar value 'J' to data type int.".
是什么导致了这个错误?如何让前缀"列显示 0 或一个字母?
What is causing this error? How can I get the 'prefix' column to display either 0 or a letter?
case when prefix like '%[0-9]%' then '0' else prefix end
你显然也需要这个作为 GROUP BY 中的表达式:
You obviously also need this as the expression in the GROUP BY:
select
NewPrefix = case when prefix like '%[0-9]%' then '0' else prefix end,
code,
stat,
complete,
COUNT(*) as Count
from table
group by
case when prefix like '%[0-9]%' then '0' else prefix end,
code, stat, complete
order by
case when prefix like '%[0-9]%' then '0' else prefix end,
code, stat, complete
这篇关于GROUP BY 同一列中的多个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
SQL - 过滤器值为空时全选SQL - Select all when filter value is empty(SQL - 过滤器值为空时全选)
如何以及在何处设置 MAXRECURSION 选项?How and where do I set the MAXRECURSION option?(如何以及在何处设置 MAXRECURSION 选项?)
TABLOCKX 与可序列化TABLOCKX versus SERIALIZABLE(TABLOCKX 与可序列化)
TSQL 常量...使用变量还是文字?TSQL Constants... Use Variable or Literal?(TSQL 常量...使用变量还是文字?)
TSQL RIGHT 字符串函数不起作用TSQL RIGHT String function not working(TSQL RIGHT 字符串函数不起作用)
SQL中临时表与物理表的比较速度是多少?What is the comparative speed of temporary tables to physical tables in SQL?(SQL中临时表与物理表的比较速度是多少?)