我有一個選擇查詢從查詢的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