sql - 将 SQL 列结果翻译成文本

标签 sql asp.net vb.net if-statement

我有一些 SQL 可以像正常情况一样从表中选择列。但是,我的一列 (u.cmc_rti_type) 是一个数字,我希望它输出文本。我假设我需要某种 if 语句。这是我的 sql:

    SELECT '', s.student_number, s.lastfirst, s.grade_level, t.TEACHER, u.cmc_rti_tier, u.cmc_rti_type
            FROM students s 
            JOIN u_def_ext_students u
            ON u.studentsdcid = s.dcid
            LEFT JOIN cmc_homeroom_teacher t
            ON s.dcid = t.dcid
            WHERE u.cmc_rti_tier <> 0
            ORDER BY s.lastfirst

如果 u.cmc_rti_type 是 1 那么我希望它输出 'Reading'
如果 u.cmc_rti_type 是 2 那么我希望它输出 'Math'
如果 u.cmc_rti_type 是 3 那么我希望它输出 'Enrichment'
如果 u.cmc_rti_type 是 4 那么我希望它输出“数学和阅读”

最佳答案

你可以使用CASE:

SELECT '', s.student_number, s.lastfirst, s.grade_level, t.TEACHER,
   u.cmc_rti_tier, 
   CASE u.cmc_rti_type 
      WHEN 1 THEN 'Reading'
      WHEN 2 THEN 'Math'
      WHEN 3 THEN 'Enrichment'
      WHEN 4 THEN 'Both Math & Reading'
      ELSE NULL
   END AS cmc_rti_type 
FROM students s 
JOIN u_def_ext_students u
  ON u.studentsdcid = s.dcid
LEFT JOIN cmc_homeroom_teacher t
  ON s.dcid = t.dcid
WHERE u.cmc_rti_tier <> 0
ORDER BY s.lastfirst

或者,如果您使用的是 SQL Sever 2012+,则可以使用 CHOOSE:

CHOOSE(u.cmc_rti_type, 'Reading', 'Math', 'Enrichment', 'Both Math & Reading') AS cmc_rti_type 

LiveDemo

关于sql - 将 SQL 列结果翻译成文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33416842/

相关文章:

C# 或 SQL 最有效的解决方案

java - Android:如何从 sqlite 数据库检索数据

sql - 使用 2016 年之前的 tsql 功能解压缩 gzip 字段

c# - 为什么 InProc session 模式不需要序列化

arrays - VB.NET - 函数无法修改数组的成员

mysql - 从其他两列计算 SQL 中的获胜百分比

javascript - 检测浏览器和版本 - 没有 Modernizr

C#向外部URL发送信息并打开

.net - 定义此扩展方法的缺点是什么?

asp.net - 检测到F5被按下并刷新