0
我想從一個變量中選擇特定的信息我將解釋下面的場景。從單元中選擇特定的信息,包括其他信息SQL Server 2008 R2
模塊數據提供給我的數據庫日誌記錄程序,並會插入到表,例如:
IF(@EventID = 20)
BEGIN
INSERT INTO _LogPvps
VALUES (@CharID, @Desc)
END
內@Desc
是,我需要提取並添加到3倍的變體的文本字符串另一個表,字符串例子:(變體1,2,3)
[My: **variant1**, Neutral, no freebattle team] [His(**variant2**): **variant3**, Neutral, no freebattle team]
我可以通過1種變體這樣分裂,但如果可能的話我需要能夠區分所有3.
IF @Desc LIKE '%My: Hunter, Neutral, no freebattle team%%His%%, Neutral, no freebattle team%%'
BEGIN
DECLARE @CNAME VARCHAR (64)
DECLARE @JOB VARCHAR (16)
SET @CNAME = (SELECT CHARNAME16 FROM DB_TEST.._Char WHERE CHARID = @CHARID)
SET @JOB = 'Hunter'
INSERT INTO JOBKILLS
VALUES (@CHARID, @CNAME, @JOB, CURRENT_TIMESTAMP, @Desc)
END
IF @Desc LIKE '%My: Robber, Neutral, no freebattle team%%His%%, Neutral, no freebattle team%%'
BEGIN
DECLARE @CNAME VARCHAR (64)
DECLARE @JOB VARCHAR (16)
SET @CNAME = (SELECT CHARNAME16 FROM DB_TEST.._Char WHERE CHARID = @CHARID)
SET @JOB = 'Thief'
INSERT INTO JOBKILLS
VALUES (@CHARID, @CNAME, @JOB, CURRENT_TIMESTAMP, @Desc)
END
IF @Desc LIKE '%My: Trader, Neutral, no freebattle team%%His%%, Neutral, no freebattle team%%'
BEGIN
DECLARE @CNAME VARCHAR (64)
DECLARE @JOB VARCHAR (16)
SET @CNAME = (SELECT CHARNAME16 FROM DB_TEST.._Char WHERE CHARID = @CHARID)
SET @JOB = 'Trader'
INSERT INTO JOBKILLS
VALUES (@CHARID, @CNAME, @JOB, CURRENT_TIMESTAMP, @Desc)
END
那麼如何選擇每個變體,以便我不能將它們設置爲標量變量並將它們插入單獨表中的各個列中?
例子:
INSERT INTO JOBKILLS
VALUES (@CHARID, @CNAME, @JOB,
@variant1, @variant2, @variant3,
CURRENT_TIMESTAMP, @Desc)
解釋,A的另一種方式 - B - 根據用戶的遊戲中做什麼C的變化,我需要從@Desc串接他們的所有3並把它們放到在另一個表中分隔列。
[My: **A**, Neutral, no freebattle team] [His(**B**): **C**, Neutral, no freebattle team]
對不起,無法理解'variant'部分。你能用更簡單的方式描述它嗎? –
A - B - C根據用戶遊戲名稱的不同而變化,我需要從@Desc字符串中挑選它們中的所有3個,並將它們放入另一個表中的單獨列中。 [我的:** A **,中立,沒有freebattle團隊] [他(** B **):** C **,中立,沒有freebattle團隊] – sqlcoding2097
嗨,在我看來,這似乎是一個問題將這個字符串分成幾個部分,然後將它們添加到一個表中。這個問題已經在SO上解決了幾次。但是,如果問題與此不同,請添加一些關於爲什麼您的問題是唯一的更多詳細信息。這裏是分割一個字符串並返回一個表的代碼。 – cameront