在 SQL 中查询 - 7 Boom
Query in SQL - 7 Boom
我需要编写一个代表以下内容的查询:
我有 1 Table 个“数字”,其中一列只有“数字”(整数)。
table包括从1到N的数据。
我需要编写一个查询,每次出现数字 7 时替换“Boom”一词
或者每次我们有一个可以被 7 整除的数字。
所以最后我得到以下信息:1 2 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
会按照您的要求去做。参见 fiddle
您可以使用 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 中的 运行 示例。
我需要编写一个代表以下内容的查询:
我有 1 Table 个“数字”,其中一列只有“数字”(整数)。 table包括从1到N的数据。
我需要编写一个查询,每次出现数字 7 时替换“Boom”一词 或者每次我们有一个可以被 7 整除的数字。 所以最后我得到以下信息:1 2 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
会按照您的要求去做。参见 fiddle
您可以使用 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 中的 运行 示例。