IF ELSE Statement in SQL

后端 未结 7 512
名媛妹妹
名媛妹妹 2021-01-22 12:10
SELECT S.Id, S.Name, S.Version, S.SoftNo
FROM SOFTWARE S WITH(NOLOCK)
WHERE (IF S.Version = 0 THEN S.Version > 0 ELSE S.Version = @Version)
AND (IF S.SoftNo = 0 THEN          


        
7条回答
  •  天涯浪人
    2021-01-22 12:51

    Don't use concatenated SQL, it is a poor habit that increases the probability of SQL injection vulnerabilities. Your SQL code is now the exact same as the following (safer) code:

    SELECT 
        S.Id, S.Name, S.Version, S.SoftNo
    FROM
        SOFTWARE S WITH(NOLOCK)
    WHERE
        (@Version = 0 OR @Version = S.Version)
        AND (@SoftNo = 0 OR @SoftNo = S.SoftNo)
    

提交回复
热议问题