【发布时间】:2018-02-13 18:04:36
【问题描述】:
我在 SQL 中使用CASE 语句来检查 Grade 列的值。例如,如果用户输入 7,我将前导 0 放在前面,因此值将保存为 07。一切正常,直到我们在我们的应用程序中添加了 K 级作为选项。现在如果用户输入 K 值将被保存为0K。这是我的 SQL Case 语句的示例:
CASE
WHEN LEN(LTRIM(RTRIM(GRADE))) = 0 THEN NULL
ELSE RIGHT('00'+ISNULL(LTRIM(RTRIM(GRADE)),''),2)
END
上面的代码用于 INSERT SELECT 语句。我想知道当用户进入 K 年级时是否可以防止前导零?修改现有的 CASE 语句是否可行?我试过添加这个:
WHEN GRADE = 'K' THEN 'K'
但这并没有解决问题,我的 INSERT 语句失败了。如果有人可以提供帮助或知道更好的解决方案,请告诉我。谢谢!
【问题讨论】:
-
插入失败的错误信息是什么?
-
@HABO 存在时间后。
标签: sql sql-server-2008 tsql case