在创建新列之前设置列的空值以防万一

时间:2018-02-16 17:10:34

标签: sql-server stored-procedures

我喜欢这样:

DECLARE @comando as varchar(5000)

set @comando = 'DTEXEC  /FILE \"" /de "pass" /CHECKPOINTING OFF  /REPORTING EW'
select @comando = @comando + ' /SET "\"\Package.Variables[' + Replace(str_NombreVariable,'User::','') + '].Value\"";' 
   + str_ValorVariable + 
CASE WHEN str_NombreVariable LIKE '%v_sRutaArchivo%' THEN @archivoCargado + '.csv\""' ELSE '' END + ''
from [Catalogo].[catVariablesEtl] where IdPaquete = 42

我想做的是做另一个案例:

CASE WHEN str_NombreVariable LIKE '%v_sCadenaConexion%' THEN '"\"'+ str_ValorVariable ELSE '' END +

但是我希望在用case创建这个新值之后删除v_sCadenaConexion值的结果。我怎样才能做到这一点?因为如果我使用查询的情况,它只是复制现有的值。 我想要的是,如果str_NombreVariable存在获得该值并使用我的case句创建新值。我怎样才能做到这一点?

问题:

Package.Variables[v_sCadenaConexion].Value\"";Data Source=0.0.0.0\BA;User ID=BAS;Password=000;Initial Catalog=BOS;Persist Security Info=True;Initial Catalog=SS;Persist Security Info=True;
                                             "\"Data Source=0.0.0.0\BA;User ID=BAS;Password=000;Initial Catalog=BOS;Persist Security Info=True;Initial Catalog=SS;Persist Security Info=True; 

您可以看到它重复值。所以我想解雇第一个并保留第二个(CASE one)

1 个答案:

答案 0 :(得分:0)

不确定这是不是你的意思......

SELECT "like", u.`name`, p.post, p.date as OrderDate FROM likes ...
UNION
SELECT "share", u.`name`, p.post, p.date as OrderDate FROM shares ...