我有一张表Test
:
id | name | hide
1 | Paul | 1
2 | John |
3 | Jessica | 2
现在我有三个问题:
我希望名称列的值为' PauAjit
'这意味着如果姓名的最后一个字符是' L
' L应替换为' Ajit
'在输出
对于' hide
'如果值为Null
,则列应显示{/ p>
0
如果名称列的值为John
,则在输出中应将其替换为Ajit
到目前为止我已尝试过:
Select name case
When name = 'paul'
then replace(name, 'l', 'Ajit') else name end from Test
答案 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