2011-12-11 78 views
8

我有一個包含多列的表。一列的值是01。如果值爲0,我想寫一個返回「Hello」的查詢,如果它是1,則返回「Bye」。 寫這個查詢的適當方法是什麼?SQL Server中的條件值替換

回答

13

使用CASE expression

SELECT CASE YourCol 
     WHEN 0 THEN 'Hello' 
     WHEN 1 THEN 'Bye' 
     END AS SomeAlias 
FROM YourTable 
+0

以秒爲單位,爲方便閱讀打我...... +1。 –

+0

Plz幫助我。如果我想選擇幾列。例如,選擇ID,YourCol,Name(YourCol是選擇案例表達式的列)。 – Tavousi

1

如果選擇多/所有列,請嘗試下面:

SELECT Column1, Column2, -- Put other column name here 
     CASE TargetColumnName 
     WHEN 0 THEN 'Hello' 
     WHEN 1 THEN 'Bye' 
     END AS TargetAliasColumnName 
FROM YourTableName 
+0

名稱「TargetColumnName」是SQL的內部名稱,因此SQL知道它引用了「Column1,Column2,...」? – Hans

+0

你可以寫你想要的列名稱,說你的列名是Column2而不是TargetColumnName - 我在我的答案中寫了TargetColumnName,因爲在你的SELECT語句中可能有很多列名,你需要在'CASE'中指定你需要的列名在SQL中的表達,希望你有我的觀點。謝謝 –

+0

所以你說「TargetColumnName」是Column1,Column2之一的佔位符。我以爲你編碼的是多列,並且對所有選定的列執行條件替換任務,而不僅僅是一個。如果是這樣的話,像Martin Smith的回答中所顯示的單列操作和多列操作之間的區別,您似乎認爲您的代碼會執行? – Hans