我需要编写一个表示以下内容的查询:
I have 1 Table " number "只有一列"Num"(整数)。表中包含从1到n的数据
我需要写一个查询,替换单词"Boom"每次数字7出现或者每次我们有一个能被7整除的数。所以最后我得到以下内容:12 3 4 5 6 Boom 8 9 10 11 12 13 Boom 15 16 Boom 18 19 20 Boom ....
希望你明白了:)
谢谢
您可以直接将您的需求转换为SQL(考虑到"Boom";是一个字符串,在某些情况下不能替换整数)。
"7或能被7整除;表示它的余数模7为零。
SELECT IF(num % 7 = 0, 'Boom', num) AS num FROM mytable
将按您的要求执行。看到小提琴
您可以使用CASE
。例如:
select
case when n % 7 = 0 or concat('x', n) like '%7%' then 'Boom'
else concat('', n)
end
from numbers
结果:
Result
------
1
2
3
4
5
6
Boom
8
9
10
11
12
13
Boom
15
16
Boom
18
19
20
Boom
22
23
24
25
26
Boom
Boom
29
30
参见DB Fiddle的运行示例。