簡體   English   中英

如何從SQL表或SQL數據庫導出所有單詞

[英]How to export all words from sql table or sql database

假設我們有下表。

UserId | Message
-------|-------------
1      | Hi, have a nice day
2      | Hi, I had a nice day

我需要分別輸入所有{嗨,我今天有一個好}字。 有什么辦法嗎? 如果我想從整個數據庫表中導出單詞怎么辦?

類似的結果也會很好。

試試這個:在Sql Server 2005或更高版本中

create table yourtable(RowID int, Layout varchar(200))
INSERT yourtable VALUES (1,'hello,world,welcome,to,tsql')
INSERT yourtable VALUES (2,'welcome,to,stackoverflow')


;WITH SplitSting AS
(
    SELECT
        RowID,LEFT(Layout,CHARINDEX(',',Layout)-1) AS Part
            ,RIGHT(Layout,LEN(Layout)-CHARINDEX(',',Layout)) AS Remainder
        FROM YourTable
        WHERE Layout IS NOT NULL AND CHARINDEX(',',Layout)>0
    UNION ALL
    SELECT
        RowID,LEFT(Remainder,CHARINDEX(',',Remainder)-1)
            ,RIGHT(Remainder,LEN(Remainder)-CHARINDEX(',',Remainder))
        FROM SplitSting
        WHERE Remainder IS NOT NULL AND CHARINDEX(',',Remainder)>0
    UNION ALL
    SELECT
        RowID,Remainder,null
        FROM SplitSting
        WHERE Remainder IS NOT NULL AND CHARINDEX(',',Remainder)=0
)
SELECT part FROM SplitSting ORDER BY RowID

SQLFIDDLE演示

好吧,好了。

在SQL Server中,您可以使用此...

SELECT word = d.value('.', 'nvarchar(max)')
FROM
    (SELECT xmlWords = CAST(
        '<a><i>' + replace([Message], ' ', '</i><i>') + '</i></a>' AS xml) 
        FROM MyMessageTbl) T(c)
    CROSS APPLY c.nodes('/a/i') U(d)

而且我希望對於MySQL,您可以使用相同的東西,使用XML支持-ExtractValue()等。

編輯:解釋

 - replace([Message], ' ', '</i><i>') replaces e.g. 'my word' with 'my</i><i>word'
 - then I add the beginning and the end of xml -> '<a><i>my</i><i>word</i></a>', so I have a valid xml... and cast it to xml type to be able to do something with it
 - I select from that xml and shred xml nodes '/a/i' it to rows using CROSS APPLY c.nodes('/a/i'); 
   alias rows using U(d), so one 'i' maps to column d (e.g. 'my')
 - d.value('.', 'nvarchar(max)') extracts node content and casts it to character type

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM