我有一个选择查询从查询的SQL Server将价值分配给一个变量
select *
from dbo.GetTableFromString ('2,www.google.com')
返回这样的结果:从意见
2
www.google.com
编辑:函数接受逗号分隔值并返回一个列名为name
。
现在我想将2
存储在名为@ID
和www.google.com
的变量中@Link
。
达到此目的的最佳方法是什么?
我有一个选择查询从查询的SQL Server将价值分配给一个变量
select *
from dbo.GetTableFromString ('2,www.google.com')
返回这样的结果:从意见
2
www.google.com
编辑:函数接受逗号分隔值并返回一个列名为name
。
现在我想将2
存储在名为@ID
和www.google.com
的变量中@Link
。
达到此目的的最佳方法是什么?
DECLARE @SplitResults table(
RowIndex int IDENTITY(1,1)
,Item varchar(200));
INSERT INTO @SplitResults
select * from dbo.GetTableFromString ('2,www.google.com');
SET @ID = (SELECT Item FROM @SplitResults WHERE RowIndex=1);
SET @Link = (SELECT Item FROM @SplitResults WHERE RowIndex=2);
非常感谢:)这个工作对我来说一点 – user8034947
保留,没有保证' 2'将以'@ ID'结尾。它可以得到'RowIndex = 2'。 –
我不知道'GetTableFromString'实际上做了什么,所以只能对'GetTableFromString'的结果做一个假设。 –
declare @ID int, @link nvarchar(max);
select @ID = ID, @link = Link
from dbo.GetTableFromString ('2,www.google.com')
我想列正在返回函数dbo.GetTableFromString id和链接。如果它们没有被正确的列名取代。
函数返回一列“名称” – user8034947
试试这个。
declare @str nvarchar(200)
set @str= '2,www.google.com'
declare @len int
SELECT @len=CHARINDEX(',', @str);
SELECT SUBSTRING(@str,0, @len) 'id'
SELECT SUBSTRING(@str,@len+1, LEN(@str))'link'
只需使用Charindex
DECLARE @TextValue varchar(100) = '2,www.google.com'
DECLARE @ID int
DECLARE @link varchar(100)
SELECT @ID = substring(@TextValue, 0, charindex(',',@TextValue)),
@link = RIGHT(@TextValue,len(@TextValue) - charindex(',',@TextValue))
SELECT @ID, @link
回报
2 www.google.com
你想打电话与这些参数的功能,或者你要存储这些参数的结果? –
商店的结果在这两个参数 – user8034947
尝试这种'声明@id INT,@链路VARCHAR(200) ;具有CTE 从dbo.GetTableFromString ( 选择* ( '2,www.google.com') ) 从 cte'选择 @ ID = ID,@链接=链接 – TheGameiswar