大家好,
这是其中的转换赋值语句.直接在SELECT时转换失败.是我写错了,还是根本不能这样转? SELECT @VALUE1 = ISNULL(VALUE1,'1')
,@VALUE2 = ISNULL(VALUE2,'2')
,@VALUE3 = ISNULL(VALUE3,'3')
,@VALUE4 = ISNULL(VALUE4,'4')
,@VALUE5 = ISNULL(VALUE5,'5')
FROM ABC WHERE A=''AND BV=''现在临时方案是,用set赋值.
SELECT @VALUE1 = VALUE1
,@VALUE2 = VALUE2
,@VALUE3 = VALUE3
,@VALUE4 = VALUE4
,@VALUE5 = VALUE5
FROM ABC_tabel WHERE A=''AND BV=''SET @VALUE1 = ISNULL(@VALUE1,'1')
SET @VALUE2 = ISNULL(@VALUE2,'2')
SET @VALUE3 = ISNULL(@VALUE3,'3')
SET @VALUE4 = ISNULL(@VALUE4,'4')
SET @VALUE5 = ISNULL(@VALUE5,'5')
这是其中的转换赋值语句.直接在SELECT时转换失败.是我写错了,还是根本不能这样转? SELECT @VALUE1 = ISNULL(VALUE1,'1')
,@VALUE2 = ISNULL(VALUE2,'2')
,@VALUE3 = ISNULL(VALUE3,'3')
,@VALUE4 = ISNULL(VALUE4,'4')
,@VALUE5 = ISNULL(VALUE5,'5')
FROM ABC WHERE A=''AND BV=''现在临时方案是,用set赋值.
SELECT @VALUE1 = VALUE1
,@VALUE2 = VALUE2
,@VALUE3 = VALUE3
,@VALUE4 = VALUE4
,@VALUE5 = VALUE5
FROM ABC_tabel WHERE A=''AND BV=''SET @VALUE1 = ISNULL(@VALUE1,'1')
SET @VALUE2 = ISNULL(@VALUE2,'2')
SET @VALUE3 = ISNULL(@VALUE3,'3')
SET @VALUE4 = ISNULL(@VALUE4,'4')
SET @VALUE5 = ISNULL(@VALUE5,'5')
-- 但是可以使用 聚合函数,比如 max 。
-- 参考下面的例子。create table test(id int , name varchar(10))
go
declare @name varchar(10) = 'X'
select @name = isnull(name,'Y') from test where id = 1
print '1.name:' + @name
select @name = isnull(max(name),'Z') from test where id = 1
print '2.name:' + @name
go
drop table test
go1.name:X
2.name:Z