2017-02-11 4 views
0

旧SQL:コンバートSQL

SELECT 
    [FileName], [FilePath] 
FROM 
    dbo.[tb_CrawlData] cr 
WHERE 
    cr.Content LIKE '%' + (SELECT content 
          FROM [tb_CrawlData] 
          WHERE Content LIKE '%test1%') + '%' 
GROUP BY 
    cr.FileName, [FilePath] 
ORDER BY 
    cr.FileName 

旧C#のSQLクエリ:

Sqlquery = "SELECT [FileName], [FilePath]" 
       + " FROM [tb_CrawlData] cr " 
       + " WHERE cr.Content like '%' + (" + Sqlquery.Substring(Sqlquery.IndexOf(" SELECT") + 1) + ") + '%' ";  
     Sqlquery += " GROUP BY cr.FileName,[FilePath]" 
        + " ORDER BY cr.FileName "; 

新しいSQL:

select 
    [FileName], [FilePath] 
from 
    dbo.[tb_CrawlData] cr 
where exists (select 1 
       from [tb_CrawlData] cd 
       where cd.Content like '%data%' 
       and cr.Content like '%' + cd.Content + '%') 
group by 
    cr.FileName, [FilePath] 
order by 
    count(*) desc, cr.FileName 

新しいC#のSQLクエリ:

新しいSQLは、私はどのようにC#を変更するか分からない。

+6

:-)書いて、あなたはあなたのポストでそれのための作業パターンを持っている - どこ正確な問題がありますか?あなたはC#で文字列を作成する方法を知っていますか?もしそうなら、SQLクエリを作成することができます。パラメータ化されたクエリについて読むと、サンプルは非常に危険です.SQLの脆弱性です。 – nabuchodonossor

+0

これは2つのSQLテーブルを含むクエリ内にサブクエリが存在するという複雑なケースです。最初に基本的なクエリを書く方がよいでしょう。 –

答えて

0

QueryFirstを使用してください。 C#アプリケーションでSQLを直接実行できます。

免責事項:私は申し訳ありません