带 if 条件的 SQL 插入

标签 sql sql-server-2008-r2 modulo

我正在使用 SQL SERVER 2008 R2
我有带有结构 ID(varchar)、name(varchar) 和 Item(int) 的表 LV

ID  Name Item
1   xxx  5
2   yyy  9
3   rrr  11
4   hhh  19

我想插入具有相同结构但有条件的表 LV_TEMP
当 Item > 9 时,我必须除以 9

什么期望表 LV_TEMP
ID   Name Item
1    xxx  5
2    yyy  9
31   rrr  9
32   rrr  2
41   hhh  9
42   hhh  9
43   hhh  1

我怎么能在 SQL 上做到这一点,我在 C# 上用 operator modulo(%) 9 做到了

提前谢谢你

最佳答案

Modulo 的语法与 C# 中的相同:http://msdn.microsoft.com/en-us/library/ms190279.aspx

您可以使用 CASE处理条件的表达式:

INSERT INTO LV_TEMP
SELECT 
ID,
NAME,
Item = CASE WHEN Item > 9 THEN  Item % 9 ELSE ... END --Put your logic here
FROM ....

关于带 if 条件的 SQL 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15198666/

相关文章:

mysql - 使用 DATE_SUB 选择小于 5 分钟的行

sql-server - 使用拆分函数重构表 SQL

c# - 重命名数据库并在显示数据库已存在错误中以旧名称创建数据库

sql-server - 新的 SQL Server 数据库使用哪个字符集?

java - 使用 Modulo 和 Double 来查找数字的数字有什么问题?

mysql - SQL 选择具有特定值的重复行

MySQL SELECT 仅从具有 DATETIME 的行中选择 AVAILABLE 月份

php - MySQL @grouping results by ID and sorting them by score”问题

带模数的 Python for 循环

Java 模运算符优先级