2012-12-18 22 views
2

我在SQL數據庫中有一個表,其中一列包含字符「C」或「P」。 我想定義一個新的列,其中值爲1,如果此字符爲「C」,否則爲零。SQL中的列操作

親切的問候, 丹尼爾

回答

3

,如果你想通過投影來定義,嘗試

SELECT columnName, IF(columnName = 'C', 1, 0) newValue 
FROM tableName 

正如Michael Berkowski提出替代方案,

SELECT columnName, (columnName = 'C') newValue 
FROM tableName 
+2

或者如果你要去MySQL特定的只是'(columnName ='C')',導致1或0 –

+0

@MichaelBerkowski我絕對同意,但我只是爲了清晰地顯示':D'。無論如何,我會更新它。 –

+0

上述語句如何使用舊列的相應變換值創建新列?我只需要一個解釋。 – SaidbakR

2
SELECT 
    your_fields, 
    IF(your_column = 'C', 1, 0) AS new_field 
FROM your_table 
2

你要嗎成爲永久性專欄?如果是這樣,請在您的表中的新列的默認值爲0如下然後發出一個更新語句:

UPDATE tableName SET newColumn = 1 WHERE oldColumn = 'C'; 
+0

這是實際創建新列的唯一答案。 –

2
ALTER MY_TABLE ADD NEW_COLUMN INT 
UPDATE MY_TABLE SET NEW_COLUMN=1 WHERE OTHER_COLUMN='C' 
UPDATE MY_TABLE SET NEW_COLUMN=0 WHERE OTHER_COLUMN='P' 
0
INSERT 
WHEN Col_name1='c' THEN 
INTO your_Table (Col_name2) 
VALUES (1) 
WHEN Col_name1='P' THEN 
INTO your_table (Col_name2) 
VALUES (0); 
SELECT * FROM your_Table; 

它將工作。

+0

:D我忘了那是用於Mysql的。上面的插入是針對Oracle的 – Vaibs