2017-12-28 16 views
0
= if(_DataCell_ILF_Cred_ = "", "", 
     _DataCell_ILF_Lyr_Pick * _DataCell_ILF_Cred + _DataCell_Burn_Lyr_Pick_ * (1 - _DataCell_ILF_Cred_) 
    ) 

このExcel IF関数をSQLコードに変換したいと考えています。Excel関数からIF関数をTSQLに変換するにはどうすればよいですか?

SELECT CASE WHEN _DataCell_ILF_Cred_ = ',' THEN 
      DoSomething 
      END 

<>','_DataCell_ILF_Cred_もしあなたがNULLの代わりに別の値を返すようにしたい場合は、それは、NULLが返されます:あなたは、SQL Serverの2012+に取り組んでいる場合はCASE式、またはIIF()を使用することができます

+0

? – Sami

+0

SQLコードは何を使用していますか?変数?いくつかの 'select'クエリの列?そして、このTSQLはビューやストアドプロシージャなどのどこかにあるのでしょうか?あなたが使うことができる言語構造が文脈によって異なるからです。これはかなり不明です。なぜこれを最初に変換しているのかを説明すると、あなたがしようとしていることについての推測だけでなく、有用な答えを得ることができます。 –

答えて

0

しかし、あなたの場合のあなたの最後の部分は明確ではないが、あなたが提供する必要が

SELECT CASE WHEN _DataCell_ILF_Cred_ = ',' THEN 
       DoSomething 
       ELSE 
       DoSomethingElse 
       END 

:、あなたは次のようにELSEを追加する必要がありますより良い答えを得るためのより多くの情報(データ型として)。以下のように(いくつかのモックデータを持つ)

+0

変換を行っている場所がSPの場合は、 'if' /' else'を使用することもできますが、このコードをどこで終わらせたいのかは非常に明確ではありません。とにかく –

0

直訳は次のようになります。

select 
1 as '_DataCell_ILF_Cred_', 
2 as '_DataCell_ILF_Lyr_Pick', 
3 as '_DataCell_Burn_Lyr_Pick' 
into #test 

select * from #test 

declare @_DataCell_ILF_Cred_ decimal 
if ((select [_DataCell_ILF_Cred_] from #test) <> '') 
begin 
    select @_DataCell_ILF_Cred_ = [_DataCell_ILF_Lyr_Pick] * [_DataCell_ILF_Cred_] 
           + [_DataCell_Burn_Lyr_Pick] * (1 -[_DataCell_ILF_Cred_]) 
           from #test 
    select @_DataCell_ILF_Cred_ as [_DataCell_ILF_Cred_] 
end 

IFをチェックすることを躊躇しないでください... ELSEドキュメント:あなたが持っているバージョン https://docs.microsoft.com/en-us/sql/t-sql/language-elements/if-else-transact-sql

関連する問題