在 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 中的 运行 示例。