Sql select中的标量函数

Sql select中的标量函数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图使用一个函数从select语句中的列中除去除数字字符以外的任何字符。我得到一个错误,多部分标识符不能绑定在调用函数的线路上 这是我的功能 create function scrubNetWt (@input varchar(50)) returns varchar(50) AS Begin Return Left( SubString(@input, PatIndex('%[0-9.-]%', @input), 80

我试图使用一个函数从select语句中的列中除去除数字字符以外的任何字符。我得到一个错误,多部分标识符不能绑定在调用函数的线路上

这是我的功能

    create function scrubNetWt (@input varchar(50))
    returns varchar(50)
    AS
    Begin
        Return Left(
             SubString(@input, PatIndex('%[0-9.-]%', @input), 8000), 
             PatIndex('%[^0-9.-]%', SubString(@input, PatIndex('%[0-9.-]%', @input), 8000) + 'X')-1)
    End
这是我试图使用函数的select语句

    USE [TFP]
    GO

    SELECT [pick_ticket_id]
          ,[pick_ticket_no]
          ,[proform_net_wt] 
          ,[proform_cr_no]
          ,[TFP].[dbo].[scrubNetWt(proform_net_wt)] AS net_wt
    FROM [TFP].[dbo].[pick_ticket_ud]
试一试


移动放错地方的括号:[TFP].[dbo].[scrubNetWt]proform_net_wt。我个人会去掉所有的方括号。您的任何对象或列名称都不需要它们!非常感谢你。是的。它起作用了。你相信我在这上面浪费了一个小时吗?这是你完成的功能吗?它和你描述的不一样。它似乎提取了一段数字。它正在工作。我想让它提取一段数字,因为在一些情况下,用户为这个列输入的值看起来像1.14 KG/2.50,而它真正需要的是1.14。不知道2.50是从哪里来的。我只是在我的数据上运行了它,它返回了我需要的报告值
[TFP].[dbo].[scrubNetWt] (proform_net_wt)