求助大佬,怎样在年度>2019的时候隐藏某个值

在2019年新一代信息技术产业代替了电子信息产业,我现在需要在sql中实现,niandu>2019显示新一代信息技术产业,niandu<2019显示电子信息产业,这段sql应该怎么写,刚入门小白不太清楚应该怎么实现,求助各位大佬

不清楚你指的"隐藏"是什么意思,如果你指的是根据条件转换字段的值,那么

  1. 一种方式是查询后再使用编程的方式自己过滤和转换。
  2. 另一种方式是直接在SQL语句里转换。

 

1. 查询语句中使用 case-when-then-else-end 语法:

MySQL/SQLServer/PostSQL 都支持: 

select case when niandu<2019  then "电子信息产业" else "新一代信息技术产业" end as name

 

参考:

  1. SQLServer: https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql?view=sql-server-ver15
  2. MySQL: https://dev.mysql.com/doc/refman/5.7/en/case.html
  3. PostSQL: https://www.postgresql.org/docs/9.1/functions-conditional.html

 

 

2. 查询语句中使用 if 函数:

MySQL:  select if(niandu<2019,"电子信息产业","新一代信息技术产业") as name

SQLServer2012+:  select iif(niandu<2019,"电子信息产业","新一代信息技术产业") as name

 

参考:

  1. https://dev.mysql.com/doc/refman/5.7/en/flow-control-functions.html#function_if
  2. https://docs.microsoft.com/zh-cn/sql/t-sql/functions/logical-functions-iif-transact-sql?view=sql-server-ver15

 

select case when niandu>=2019 then '新一代信息技术产业'  else '电子信息产业'  end as [ColumnName]

from [TableName]