Sql select中的标量函数
我试图使用一个函数从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
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)