如果status等于true,则更改为“uitgeleend”

时间:2013-12-22 18:43:20

标签: sql

我正在尝试查询状态可以为true或false的表中的项。

如果状态为true,我希望将值更改为“Uitgeleend”(借出,荷兰语)。此外,如果状态为false,我希望返回的值为“Binnen”(有货,荷兰语)。

不确定如何查询。我不知道。

喜欢的东西

Select convert(Item.Status, true, 'Uitgeleend') AS Status 

或者我现在做的事情非常愚蠢?

编辑:这是我的原始查询,必须添加状态:

SELECT Item.Titel, Item.Uitgever, Game.PEGI, Game.EAN, convert(varchar, Item.DvU, 101) AS DatumVUitgave, Platform.Soort as Platform, Media.soort as Media, GameGenre.Genre AS Genre FROM Game LEFT JOIN ITEM ON Item.ID = Game.itemID LEFT JOIN Media ON Game.MediaID = Media.Id LEFT JOIN Platform ON Game.PlatformID = Platform.Id LEFT JOIN GameGenre ON Game.GameGenreID = GameGenre.Id

1 个答案:

答案 0 :(得分:2)

您可以使用case

假设您正在讨论bit列,请执行以下操作:

SELECT 
    Item.Titel, Item.Uitgever, Game.PEGI, Game.EAN, 
    convert(varchar, Item.DvU, 101) AS DatumVUitgave, 
    Platform.Soort as Platform, Media.soort as Media, 
    GameGenre.Genre AS Genre,
    -- here's your new column:
    case when Item.Status=1 then 'Uitgeleend' else 'Binnen' end as Status
FROM Game 
LEFT JOIN ITEM ON Item.ID = Game.itemID 
LEFT JOIN Media ON Game.MediaID = Media.Id 
LEFT JOIN Platform ON Game.PlatformID = Platform.Id 
LEFT JOIN GameGenre ON Game.GameGenreID = GameGenre.Id

如果它是实际字符串“true”,则只需将1更改为'true'

convert用于更改列的类型 - 例如将数字转换为文本,或将文本转换为日期时间。