Überprüfen einer characterfolge, die in einer variables mit Bit – T-SQL gespeichert ist

jeder!

Ich habe Zweifel: In meiner Lösung wird der Benutzer einige Bedingungen auf der Grundlage bestehender variables eingeben, zB: Ich habe eine Tabelle, in der ich die Werte der chemischen Analyse speichere; Diese Tabelle hat Spalten für alle chemischen Elemente, die an dem process beteiligt sind, mit den Werten für jede Veranstaltung:

Siehe Tabelle hier!

Benutzer können eines dieser Elemente auswählen, um mit Standardwerten in irgendeiner Art von "Parser" zu vergleichen, die "sichere" Standards zu überprüfen, die jede Komponente hat, um Alarme zu erzeugen, wenn die Bedingung aus dem Regelzustand herauskommt, zB:

wenn fe> 10 und cr <5 {// Alarm erzeugen}

Meine Lösung für dieses Problem, bis jetzt ist es, den Inhalt der Bedingung als String in einer variables zu speichern, replace Sie die "Namen" der Elemente für seine Werte für die Analyse in diesem Moment genommen und prüfen, ob die Bedingung wahr ist mit einem Bit variabel. Bisher war ich in der Lage zu tun (die Werte sind manuell definiert, so dass es möglich war, den Cursor zu entfernen und das Beispiel zu schließen):

`declare @sql nvarchar(max) , @fe int , @sn int , @verifica bit set @fe = 59 set @sn = 5 set @sql = 'if fe > 50 and sn > 5' set @sql = REPLACE(@sql,'fe',@fe) set @sql = +REPLACE(@sql,'sn',@sn)` 

Ergebnis:

wenn 59> 50 und 5> 5

Meine Frage hier ist, wie man die Bitvariable benutzt, um diese Bedingung zu überprüfen (wenn es sogar möglich ist) oder wenn ich sie als WHERE-Klausel verwenden muss, ohne die Werte zu replace, zB:

  declare @select nvarchar(max) ,@sql nvarchar(max) set @sql = 'fe > 50 and sn > 5' set @select = 'select * from 'myAnalysisTable' where'+@sql exec @select 

Ich bevorzuge die erste Option, weil die Bedingungen irgendwelche Elementbenutzer verwenden können, manchmal mit Klammern und mehr als eine Überprüfung, und die replace Lösung triggers das Problem der String-Organisation, die nur notwendig ist, um zu überprüfen, ob aktuelle Werte größer oder kleiner sind als die Standard-Werte – die "Where-Klausel" -Lösung würde nur viel Arbeit machen, um sicherzustellen, dass die Aussage richtig gespeichert ist, um analysiert zu werden.

Kann mir bitte jemand helfen? Ich habe die MIT-Parser-Lösung auf GitHub gesehen, aber ich möchte meine eigenen entwickeln, nach dem Gedanken, das ich hatte … ist es möglich?