0
Q
SQL單獨的行
A
回答
2
高達SQL Server 2008 R2的我認爲,我們沒有更好的選擇,比這個,但在SQL Server 2012中有一些額外的附加功能,它是可能的。
DECLARE @tblTemp TABLE
(
ID INT
, TextValue NVARCHAR(500)
)
INSERT INTO @tblTemp
SELECT 1, 'text|text|text'
UNION
SELECT 2, 'text|text|text'
SELECT * FROM @tblTemp
DECLARE
@ID INT,
@Data NVARCHAR(MAX),
@Expression NVARCHAR(5);
DECLARE @Temp TABLE
(
ID INT,
Data NVARCHAR(100)
)
DECLARE TempCursor CURSOR FORWARD_ONLY STATIC FOR
SELECT ID, TextValue, '|' FROM @tblTemp
-- Open cursor and try to fetch first element
OPEN TempCursor
FETCH NEXT FROM TempCursor INTO @ID, @Data, @Expression
-- loop while fetch returned next item
WHILE @@FETCH_STATUS = 0
BEGIN
-- Do the processing
DECLARE @Index INT
SET @Index = 1
WHILE (CHARINDEX(@Expression, @Data) > 0)
BEGIN
INSERT INTO @Temp(ID, data)
SELECT @ID, Data = LTRIM(RTRIM(SUBSTRING(@Data, 1, CHARINDEX(@Expression, @Data)-1)))
SET @Data = SUBSTRING(@Data, CHARINDEX(@Expression, @Data) + 1, LEN(@Data))
SET @Index = @Index + 1
END
INSERT INTO @Temp (ID, Data)
SELECT @ID, Data = LTRIM(RTRIM(@Data))
-- fetch next entry
FETCH NEXT FROM TempCursor INTO @ID, @Data, @Expression
END
-- Close and deallocate cursor
CLOSE TempCursor
DEALLOCATE TempCursor
SELECT DISTINCT * FROM @Temp
0
親愛的朋友創建的SQL函數,然後調用它
CreateFUNCTION [dbo].[SplitTest](@String varchar(MAX), @Delimiter char(1))
as
begin
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@String)<1 or @String is null return
while @idx!= 0
begin
set @idx = charindex(@Delimiter,@String)
if @idx!=0
set @slice = left(@String,@idx - 1)
else
set @slice = @String
if(len(@slice)>0)
insert into @temptable(Items) values(@slice)
set @String = right(@String,len(@String) - @idx)
if len(@String) = 0 break
end
return
end;
Select ID, SplitTest(Data,'|') From YourTable
相關問題
- 1. SQL COUNT行導致在單獨的列
- 2. SQL單獨一列的數
- 3. 在單獨的行
- 4. 傳單單獨行
- 5. 如何將SQL中的行分成單獨的編號行?
- 6. SQL:兩個獨立的行
- 7. SQL:如何合併行分成單獨的行
- 8. Python csvreader單獨行
- 9. SQL查詢拉出表單項每個值單獨一行
- 10. 一個單獨的行
- 11. Freemarker創建單獨的行
- 12. 獨立值的表單域行的SQL Server 2000
- 13. 谷歌的BigQuery SQL單獨的列
- 14. 單獨的T-SQL語句單獨運行良好,但在合併時不運行
- 15. SQL Server:獨特+隨機行
- 16. SQL - 基於單獨的字段計算唯一行
- 17. SQL查詢:接合由兩個單獨的行
- 18. SQL觸發器是否在單獨的線程中運行?
- 19. PHP腳本爲每個SQL行輸出單獨的PDF - FPDF
- 20. 多個刪除SQL服務器中的單獨行
- 21. SQL僅選擇存在於單獨元數據表中的行
- 22. 使用SQL Server將XML文件分解爲單獨的行
- 23. SQL:將編碼行存儲爲給定ID的單獨列
- 24. 我怎麼能單獨的SQL查詢
- 25. SQL單獨傳遞的字符串
- 26. SQL Server:按位或單獨的字段
- 27. Sql Azure - 單獨的服務器?
- 28. SQL函數的單獨查詢?
- 29. 代碼中的單獨SQL字符串
- 30. SQL DB查詢的單獨線程
退房這個帖子:http://stackoverflow.com/questions/2647/split-string-in-sql – alan
我會取結果並在代碼中進行拆分(如果有程序) –