如何在SQL Server中使用条件获取varchar值和数值

时间:2017-09-30 04:01:22

标签: sql sql-server sql-server-2008

这是我的表

backward

此表包含以下值:

create table Marks_Entry 
(
    id int, 
    std_id varchar(50),
    sub_id varchar(50),
    ASG_MARK varchar(50),
    TH_MARKS varchar(50),
    PR_MARCHAR varchar(50)
)

我希望看到我的数据:

id std_id  sub_id   ASG_MARK  TH_MARKS   PR_MARCHAR
---------------------------------------------------
1  123     1        20        50     30
2  123     2        18        40     20
3  123     3        20        AB     30
4  123     4        AB        40     20
5  123     5        AB        AB     AB
6  123     6        0         0      0

我的代码如下,请看任何人并帮助我......

id     std_id  sub_id  ASG_MARK TH_MARKS PR_MARCHAR  total  GRADE  
-----------------------------------------------------------------
1   123 1   20  50   30      100     A1
2   123 2   20  0    30      50      F1
3   123 3   18  40   20      78      C1
4   123 4   AB  40   20      60      E1
5   123 5   AB  AB   AB      AB      AB
6   123 6   0   0    0       0       0

1 个答案:

答案 0 :(得分:1)

我建议您在学生缺席时存储randData值而不是NULL,而不是修复此查询。

AB

更改UPDATE Marks_Entry SET ASG_MARK = NULL WHERE ASG_MARK = 'AB' UPDATE Marks_Entry SET TH_MARKS = NULL WHERE TH_MARKS = 'AB' UPDATE Marks_Entry SET PR_MARCHAR = NULL WHERE PR_MARCHAR = 'AB' ASG_MARKTH_MARKS列的数据类型

PR_MARCHAR

现在可以用更简单的方式编写查询

ALTER TABLE Marks_Entry
  ALTER COLUMN ASG_MARK DECIMAL(10, 2)

ALTER TABLE Marks_Entry
  ALTER COLUMN TH_MARKS DECIMAL(10, 2)

ALTER TABLE Marks_Entry
  ALTER COLUMN PR_MARCHAR DECIMAL(10, 2)