sql >> データベース >  >> RDS >> Sqlserver

SQL Server ストアド プロシージャの SELECT ステートメントのネストされた if ステートメント

    このために、定義された入力パラメーターを考慮して、次のようなより正式な動的 SQL ソリューションを使用しようとします

    DECLARE @SQL VARCHAR(MAX)
    
    SET @SQL = '
    SELECT
    
    FROM
         database.dbo.table T
    WHERE
         T.deleted = ''n'' '
    
    --Do your conditional stuff here
    IF @searchf1 <> '' THEN
        SET @SQL = @SQL + ' AND fieldf1 = ' + @searchf1 + ' AND fieldr1 = ' + @searchr1 + ''' '
    
    --Finish the query
    SET @SQL = @SQL + ' ORDER BY xxx'
    
    EXEC(@SQL)
    

    免責事項: 動的 SQL の使用は軽視すべきものではありません。SQL インジェクション攻撃を受けないようにするために、あらゆる状況で適切な考慮が必要ですが、一部の動的検索タイプの操作では、動的 SQL は最も洗練されたものの 1 つです。



    1. OracleDG40DBCの微調整

    2. PDOが存在しない場所にMYSQL挿入

    3. SQL Server 2008 での大きなテーブルのクエリ

    4. EBS R12.2 /StandaloneWeblogicでWeblogicサーバーのバージョン/パッチを検索する