【问题标题】:T-SQL replace value on selectT-SQL 在选择时替换值
【发布时间】:2012-11-04 12:53:38
【问题描述】:

我的表中有一个列 (SERVICE_ID),其中我只能有 3 个值:0、1 和 2。

SELECT 上,我想将这些值更改为英文单词进行显示:

select client, SERVICE_ID
from customers

目前显示:

| John     | 1
| Mike     | 0
| Jordan   | 1
| Oren     | 2

我想更改查询以获取:

| John     | QA
| Mike     | development
| Jordan   | QA
| Oren     | management

有没有办法只使用选择来做到这一点?

【问题讨论】:

    标签: sql-server tsql select


    【解决方案1】:
    SELECT client,
           CASE SERVICE_ID
             WHEN 0 THEN 'development'
             WHEN 1 THEN 'QA'
             WHEN 2 THEN 'management'
           END AS SERVICE
    FROM   customers 
    

    虽然我会为 Services 提供一个单独的表,其中包含 SERVICE_ID, Name 列并加入该表以检索服务名称。

    【讨论】:

    • 工作正常。谢谢你的回答。
    【解决方案2】:
    CREATE TABLE `serviceID_lookup` (
        `serviceID` INT(10) NULL,
        `Description` VARCHAR(50) NULL
    )
    COLLATE='utf8_general_ci'
    ENGINE=InnoDB;
    
    select c.client, sl.Description 
    from customers c 
    inner join serviceID_lookup sl on sl.serviceID = c.SERVICE_ID
    

    【讨论】:

      猜你喜欢
      • 2018-06-29
      • 1970-01-01
      • 2015-03-28
      • 2013-05-21
      • 2013-09-06
      • 2017-05-21
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      相关资源
      最近更新 更多