2017-09-01 6 views
2

私はいくつかのグーグルを行い、いくつかの進歩を遂げましたが、私は正しい構文を得ることができません。私はそれがこのようなものでなければならないと思う:IFまたはそれ以降のSQL Server

SELECT 
    IF(Substring(dbo.LIMIT_HIST.ID,8,5) = '.0010' OR 
    Substring(dbo.LIMIT_HIST.ID,8,5) = '.0020' 
    Left(dbo_LIMIT_HIST.ID,18),"")) AS IDs 
FROM 
    dbo.LIMIT_HIST INNER JOIN 
    dbo.CUSTOMER ON 
    dbo.LIMIT_HIST.LIABILITY_NUMBER = dbo.CUSTOMER.CUSTOMER_CODE 

誰かが私に正しい方向へのプッシュを与えることができますか? ありがとう!

+0

what in sqlを実行するための構文? – Amit

+0

なぜ「.0020」と「左」の後に「AND」または「OR」がないのですか? – tanaydin

答えて

4

ケースステートメントが必要なようです。

SELECT 
    CASE 
     WHEN Substring(dbo.LIMIT_HIST.ID,8,5) = '.0010' 
      OR Substring(dbo.LIMIT_HIST.ID,8,5) = '.0020' 
     THEN Left(dbo_LIMIT_HIST.ID,18) 
     ELSE '' 
    END AS IDs 
FROM 
    dbo.LIMIT_HIST INNER JOIN 
    dbo.CUSTOMER ON 
    dbo.LIMIT_HIST.LIABILITY_NUMBER = dbo.CUSTOMER.CUSTOMER_CODE 
+0

グーグルでは、私はケースの例を見ました...いつ、もっと多くのIf ... Thenを見ました。とても混乱するような。それは今でも意味があります。 – ryguy72

+1

これは通常、コードの論理的な流れを制御するためにselectの外側で使用されます。 [IIF()](https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-iif-transact-sql)はSQL 2012で導入されたもので、CASEなぜならあなたはただ一つの 'WHEN'しか持っていないからです。しかし、私はあなたがすべて清算されてうれしいです! – scsimon

関連する問題