2016-09-01 12 views
-2

を存在する場合、私は次のクエリがあります: '' 近くSQL Serverの:クエリテーブルは

正しくない構文:

SELECT 
    COUNT(*) over() as countNum, 
    [F1] AS STANDARDandOBJ, 
    [F2] AS CLUSTER, 
    [F3] AS OBJECTIVE, 
    [F4] AS EXTRA0 
    IF COL_LENGTH([tmpExcelDB].[dbo].['Blahsing$'], [F5]) IS NOT NULL 
     BEGIN 
      print 'exists' 
     END 
    ELSE 
     BEGIN 
      print 'Nope' 
     END, 
    CONCAT([F1], [F2]) AS combined 
FROM 
    [tmpExcelDB].[dbo].['Blahsing$'] 
WHERE 
    LOWER(F3) NOT LIKE 'course tools-%' 

をしかし、私がエラーを持っているようです。行を指している

,CONCAT([F1], [F2]) AS combined 

は、これはどのように動作するためにフォーマットする必要がありますか?

+0

あなたが ''印刷のために同じまた、SELECT'文の ''でIF'を使用望めない – Marusyk

+0

**の理由なぜならそれを無作為に説明することは無意味です。**これはヘルプフォーラムではありません。私はあなたがそのことを知らなかったとは信じられません。 – StealthRT

答えて

0

カップルの事:

  1. IF...ELSEが選択リストでサポートされていないが、選択リストにはサポートされていない代わりに

  2. PRINT、単なる文字列リテラル値を

  3. を必要とされている CASEを使用します

関連する例については、CASE Documentationを参照してください。

2

SELECTの中にIFを使用することはできません。CASEという表現が必要です。また、列内PRINTを使用しても意味がありません。

SELECT 
    COUNT(*) over() as countNum 
    ,[F1] AS STANDARDandOBJ 
    ,[F2] AS CLUSTER 
    ,[F3] AS OBJECTIVE 
    ,[F4] AS EXTRA0 
    ,CASE 
     WHEN COL_LENGTH('[tmpExcelDB].[dbo].[''Blahsing$'']', '[F5]') IS NOT NULL 
     THEN 'exists' 
     ELSE 'Nope' 
     END 
    ,CONCAT([F1], [F2]) AS combined 
    FROM [tmpExcelDB].[dbo].['Blahsing$'] 
    WHERE 
    LOWER(F3) NOT LIKE 'course tools-%'; 
+0

それはありました!ありがとうラマック! – StealthRT

0
SELECT 
    COUNT(*) over() as countNum 
    ,[F1] AS STANDARDandOBJ 
    ,[F2] AS CLUSTER 
    ,[F3] AS OBJECTIVE 
    ,[F4] AS EXTRA0 , 
    (CASE When COL_LENGTH([tmpExcelDB].[dbo].['Blahsing$'], [F5]) IS NOT NULL 
     THEN 
      'exists'    
    ELSE    
      'Nope' 
     END), 

    CONCAT([F1], [F2]) AS combined 
    FROM [tmpExcelDB].[dbo].['0812 Orientation to Nursing$'] 
    WHERE LOWER(F3)NOT LIKE 'course tools-%'