所以我想创建一个返回一组行的SQL查询,并将这些行中的某个列设置为null。所以,如果我有一个类似
的表格column1 column2 column3
a b c
a b d
e f g
我想做伪SQL SELECT * FROM table WHERE column1 = a AND ALSO SET column2 = null
并让它返回上面的前两行,同时让表格看起来像
column1 column2 column3
a null c
a null d
e f g
我可以这样做吗?
答案 0 :(得分:0)
首先,无法在一个查询中同时使用select
和update
。
其次,如果您只想在null
显示column1 = 'a'
,那么您可以试试这个:
SELECT column1,CASE WHEN column1='a' THEN NULL ELSE column2 END as column2
,column3
FROM yourtable
修改强>
但是,如果要获取原始数据然后更新值,则必须编写两个单独的查询。一个用于选择resords,另一个用于更新表格column2的记录。
答案 1 :(得分:0)
DECLARE @column1 varchar(2);
SET @column1 = (SELECT distinct column1 FROM table WHERE column1 = 'a' );
select * from table where column1 = @column1;
update table set column2 = null where column1 = @column1;
这个工作对我来说是在sql server..which将返回之前的行,并将使用后台的新值更新列