我正在创建新列,但特别是我想说一个列的值是否等于某个值,然后更改相应的列。例如:
SELECT
Col1 as c1
,Col2 as c2
,CASE CAST([COB] as varchar(50))
WHEN 'Engineering' then set c1 = 1
ELSE 0
END AS [Class of Business]
FROM
....
但我不能让它工作,例如,如果[COB]列中的条目是'工程',那么我希望它将列c1设置(在同一行上)为0,否则只需填写列c1为0的
答案 0 :(得分:1)
如果您只想查询表格,则可以在COB状态的基础上返回1或0,而无需重新分配 SELECT
A.brnd_id,A.brnd_name,'2000ml' capacity,COALESCE(B.`2000ml`,0) bottles,
B.stock,B.stock_date
FROM tbl_brands A
left OUTER JOIN
tbl_counter_stock AS B
on A.BRND_ID=B.BRND_ID
AND B.STOCK IN('O','C')
AND B.STOCK_DATE='2017-01-18'
新值。
试试这个:
c1
答案 1 :(得分:1)
这不是<Button Content="Test command"
xmlns:local="clr-namespace:WpfApplication1"
local:CombinedMouseAndKeyCommandBehavior.Command="{Binding RemoveCommand}"
local:CombinedMouseAndKeyCommandBehavior.Key="F">
<Button.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding AddCommand }" />
</Button.InputBindings>
</Button>
的工作方式。你正在寻找这样的东西:
SELECT
答案 2 :(得分:1)
因此,当COB =工程时,您希望c1为1,否则只是C1的当前值。 如果那是cae那么......
SELECT
CASE CAST([COB] as varchar(50))
WHEN 'Engineering' then 1
ELSE c1
END AS c1
,Col2 as c2
FROM
..
答案 3 :(得分:0)
你为什么要做cast()
?
SELECT Col1 as c1,
Col2 as c2,
(CASE WHEN [COB] = 'Engineering' THEN 1 ELSE 0 END) as [Class of Business]
FROM . . .;
您可以使用搜索到的CASE
来实现此目的。但通过一次比较,我认为上述内容更容易阅读。