sql >> Databáze >  >> RDS >> Sqlserver

Vnořené if příkazy v SQL Server uložené procedury příkaz SELECT

Za tímto účelem bych se pokusil jít s formálnějším řešením Dynamic SQL, něco jako je následující, vzhledem k vašim definovaným vstupním parametrům

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)

ODPOVĚDNOST: Použití dynamického SQL NENÍ něco, co by se mělo brát na lehkou váhu, a za KAŽDÝCH okolností by se mělo řádně zvážit, abyste se ujistili, že nejste otevření útokům SQL injection, nicméně pro některé operace typu dynamického vyhledávání je to jedna z nejelegantnějších trasa.



  1. Zápis souboru PHP ke čtení z CSV a spuštění SQL Query

  2. mysqldump version Chyba při exportu dat z MySQL

  3. UTF - 8 s JPA a Glassfish 4.0

  4. Efektivní strategie pro zanechání auditní stopy/historie změn pro DB aplikace?