如何从列中替换一个值

时间:2011-12-06 00:54:38

标签: sql

我有一个脚本拉一列,一些单元格没有任何内容,所以它们返回了一个' dash'。我希望将这些替换为' Global'但是检索了所有其他结果。我不想在案例中指定每一个,因为它们可能会不时发生变化。

4 个答案:

答案 0 :(得分:2)

也许是这样的事情?

SELECT CASE 
     WHEN MyColumn = '-' THEN 'Global' 
     ELSE MyColumn
END 
FROM   MyTable 

答案 1 :(得分:0)

如果可以的话,请有一个查找表。像

这样的东西
create table ConfigTable
(
    pkConfigTable int identity(1, 1) not null primary key clustered,
    ConfigKey varchar(100) not null,
    ConfigValue varchar(100) not null
)
go

insert into ConfigTable
values('NothingString', '-')
go

declare @NullChar varchar(10)
go

select @NullChar = ConfigValue
from ConfigTable
where ConfigKey = 'NothingString'
go

select
    case 
        when yourColumnToTest = @NullChar
            then 'Global'
        else yourColumnToTest
    end
from yourTable

答案 2 :(得分:0)

一个简单的IF可能会这样做:

SELECT
 IF(Column = '-', 'Global', Column) AS NiceNameForColumn
FROM
 Table 

答案 3 :(得分:0)

SELECT COALESCE(NULLIF(a_column, '-'), 'Global') AS a_column_narrative
  FROM YourTable;