【发布时间】:2023-03-09 07:15:02
【问题描述】:
我正在尝试编写一个函数来处理列值并返回值以及“@”符号之前的所有内容。
到目前为止,我已经通过使用以下代码做到了这一点:
Create Function fnStaffCodeConvert (@staffcode varchar(10))
Returns varchar(4)
AS
BEGIN
DECLARE @staffinitals varchar(4)
SET @staffinitals = (SELECT substring(@staffcode,0, CHARINDEX('@',@staffcode)))
Return @staffinitials
END
函数的示例结果 - 参数输入 = ABC@123,返回 = ABC。
这可行,但随后仅返回列包含@ 值的每个结果,并且省略了不带@ 的其余结果。 IE。 ABC@123 返回 ABC 但 XYZ 不返回任何内容。
如何修改代码以提供两组值?我想我必须在其中添加一个“IF”语句,但我不确定如何编写它以获得我想要的结果。
提前非常感谢:)
迈克
【问题讨论】:
-
也许你应该为你用来编写函数的 LANGUAGE 添加一个标签?你不觉得像
sql这样的标签可能合适吗? -
你用的是什么数据库?
标签: sql sql-server function if-statement substring