Ahhhhh! I got it! Sort of...well, okay, it is a work-around anyway.
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Imports Microsoft.VisualBasic.Strings
Partial Public Class UserDefinedFunctions
<Microsoft.SqlServer.Server.SqlFunction()> _
Public Shared Function stringEval(ByVal equation As String) As SqlString
Dim table As New DataTable
Dim eqObject As Object
eqObject = table.Compute(equation, "")
Dim results As SqlString = SqlDecimal.Parse(eqObject.ToString()).ToString()
Return results
End Function
End Class
I'm sure someone can figure this out, but it actually works better than I had originally thought as is. To use it, I simply call it as
select ..., convert(decimal(18,2), dbo.stringEval(stringWithMathEquation)) ...
In case anyone uses this, or wants to tweak it, I can only get it to work by either using the string that it returns, or to use a convert or cast to decimal. It gets an error if I try to convert/cast it directly to an int. I'm not sure what all of the issues are, but it at least gives me a short-term fix and the result can then be managed with native SQL functions to change it to any other datatype.
Thank you!