要在输出查询中更改列值

时间:2015-04-16 09:20:56

标签: sql sql-server db2

我有一张表Test

 id   |  name    |  hide
  1   |  Paul    |  1
  2   |  John    |  
  3   |  Jessica |  2

现在我有三个问题:

  1. 我希望名称列的值为' PauAjit'这意味着如果姓名的最后一个字符是' L' L应替换为' Ajit'在输出

  2. 对于' hide'如果值为Null,则列应显示{/ p>

  3. 0
  4. 如果名称列的值为John,则在输出中应将其替换为Ajit

  5. 到目前为止我已尝试过:

    Select name case 
    When name = 'paul' 
    then replace(name, 'l', 'Ajit')  else name end from Test
    

2 个答案:

答案 0 :(得分:0)

SELECT id, 
CASE WHEN name = 'John' 
     THEN 'Ajit' 
     WHEN RIGHT(name,1) = 'l' 
     THEN LEFT(name,3) + 'Ajit' 
     ELSE name 
     END AS name,
ISNULL(hide,'0')
FROM table

答案 1 :(得分:0)

我希望将name列的值设置为'PauAjit',这意味着如果Name的最后一个char为'L',则L应该在输出中替换为'Ajit'。

SELECT
    CASE WHEN RIGHT(Name,1) = 'L' THEN STUFF(Name,LEN(Name),1,'Ajit') ELSE Name END
FROM
    MyTable

对于'hide'列,如果value为Null,那么输出应显示为0。

SELECT
    ISNULL(Hide,'0')
FROM
    MyTable

如果name列具有值John,那么在输出中它应该被Ajit替换。

SELECT
    CASE WHEN Name = 'John' THEN 'Ajit' ELSE Name END
FROM
    MyTable