Gibt es eine Möglichkeit, die arithmetischen Operatoren (<,>, =,> =, < =) in T-SQL zu parametrisieren?T-SQL: Parameter als Operator verwenden
Etwas wie folgt aus:
DECLARE @Operator
SET @Operator = '>='
SELECT *
FROM Table
WHERE Date @Operator '7/1/2017'
Auch teste ich zusätzliche Parameter hinzuzufügen Funktionen EXEC('SELECT SiteLongName, * FROM Reporting.Survey_Details WHERE CallDate ' + @Operator + '''7/1/2017''' + 'and SiteLongName in (select value from dbo.FnSplit(''' + @Site + ''''+'',''+'',''))
, aber es ist erroring aus.
Ein 'case' Ausdruck kann verwendet werden, z.B. 'Fall wenn @Operator = '> =' und Col> = @Val dann 1 wenn @Operator = '=' und Col = @Val dann 1 ... else 0 Ende = 1 ', aber die Leistung wäre ein Problem. Für einen kleinen Datensatz kann es ausreichen. Und es vermeidet, [Bobby Tables] zu treffen (http://bobby-tables.com/). – HABO
Leistung wird ein Problem für den Bericht, den ich in SSRS erstellen, da es große monatliche Anrufdaten mit mehreren Berichtsparametern enthält. Ich bin nur besorgt über die Verwendung der arithmetischen Operator als Parameter, aber jetzt im testing die Aufnahme einer SQL-Funktion. – Arsee