我正在将包含所有数据的列拆分为多个列。我正在使用CASE条件来完成这项任务,而使用INSERT INTO时,我很难成功完成任务。我想我可能需要另一个SELECT语句,但我不确定在哪里。
USE Breakthroughapp;
GO
INSERT INTO Lineup_possessions (m_player, g_time, g_scorefor, g_scoreagainst, g_event)
SELECT
(m_player =
CASE
WHEN g_playbyplay LIKE '%N. Walter' THEN 'N Walter'
WHEN g_playbyplay LIKE '%B. Fish%' THEN 'B Fish'
WHEN g_playbyplay LIKE '%M. Wiese' THEN 'M Wiese'
WHEN g_playbyplay LIKE '%C. Stekl' THEN 'C Stekl'
WHEN g_playbyplay LIKE '%R. Whalen' THEN 'R Whalen'
WHEN g_playbyplay LIKE '%M. Pflughaupt' THEN 'M Pflughaupt'
WHEN g_playbyplay LIKE '%T. Kuethe' THEN 'T Kuethe'
WHEN g_playbyplay LIKE '%O. Carstensen' THEN 'O Carstensen'
WHEN g_playbyplay LIKE '%I. Hahn' THEN 'I Hahn'
WHEN g_playbyplay LIKE '%N. Schmidt' THEN 'N Schmidt'
WHEN g_playbyplay LIKE '%Marion%' THEN 'Team'
WHEN g_playbyplay LIKE '%Game Clock%' THEN 'Official'
ELSE 'Opponent'
END ,
g_time, -- New Column
g_ptsfor,
g_pointsagainst,
(g_event =
CASE
WHEN g_playbyplay LIKE '%Entered%' THEN 'Enter Game'
WHEN g_playbyplay LIKE '%Exited%' THEN 'Exit Game'
WHEN g_playbyplay LIKE '%Clock Started%' THEN 'Clock Starts Rolling'
WHEN g_playbyplay LIKE '%Clock Stopped%' THEN 'Clock Stoppage'
WHEN g_playbyplay LIKE '%Layup Made%' THEN 'Layup Made'
WHEN g_playbyplay LIKE '%2pt Made%' THEN '2 pt Made'
WHEN g_playbyplay LIKE '%3pt Made%' THEN '3 pt Made'
WHEN g_playbyplay LIKE '%Layup Miss%' THEN 'Layup Miss'
WHEN g_playbyplay LIKE '%2pt Miss%' THEN '2 pt Miss'
WHEN g_playbyplay LIKE '%3pt Miss%' THEN '3 pt Miss'
WHEN g_playbyplay LIKE '%Free Throw Made%' THEN 'FT Made'
WHEN g_playbyplay LIKE '%Free Throw Miss' THEN 'FT Miss'
WHEN g_playbyplay LIKE '%Foul%' THEN 'Foul'
WHEN g_playbyplay LIKE '%Defensive Rebound%' THEN 'Defensive Rebound'
WHEN g_playbyplay LIKE '%Offensive Rebound%' THEN 'Offensive Rebound'
WHEN g_playbyplay LIKE '%Forced Jump Ball%' THEN 'Forced Jump Ball'
WHEN g_playbyplay LIKE '%Assist%' THEN 'Assist'
WHEN g_playbyplay LIKE '%Steal%' THEN 'Steal'
WHEN g_playbyplay LIKE '%Block%' THEN 'Block'
WHEN g_playbyplay LIKE '%Timeout%' THEN 'Timeout'
WHEN g_playbyplay LIKE '%Turnover%' THEN 'Turnover'
ELSE 'Other'
END)
FROM FakeGameCorrect;
您可以删除()
:
INSERT INTO Lineup_possessions (m_player, g_time, g_scorefor, g_scoreagainst, g_event)
SELECT
m_player =
CASE
WHEN g_playbyplay LIKE '%N. Walter' THEN 'N Walter'
WHEN g_playbyplay LIKE '%B. Fish%' THEN 'B Fish'
WHEN g_playbyplay LIKE '%M. Wiese' THEN 'M Wiese'
WHEN g_playbyplay LIKE '%C. Stekl' THEN 'C Stekl'
WHEN g_playbyplay LIKE '%R. Whalen' THEN 'R Whalen'
WHEN g_playbyplay LIKE '%M. Pflughaupt' THEN 'M Pflughaupt'
WHEN g_playbyplay LIKE '%T. Kuethe' THEN 'T Kuethe'
WHEN g_playbyplay LIKE '%O. Carstensen' THEN 'O Carstensen'
WHEN g_playbyplay LIKE '%I. Hahn' THEN 'I Hahn'
WHEN g_playbyplay LIKE '%N. Schmidt' THEN 'N Schmidt'
WHEN g_playbyplay LIKE '%Marion%' THEN 'Team'
WHEN g_playbyplay LIKE '%Game Clock%' THEN 'Official'
ELSE 'Opponent'
END ,
g_time, -- New Column
g_ptsfor,
g_pointsagainst,
g_event =
CASE
WHEN g_playbyplay LIKE '%Entered%' THEN 'Enter Game'
WHEN g_playbyplay LIKE '%Exited%' THEN 'Exit Game'
WHEN g_playbyplay LIKE '%Clock Started%' THEN 'Clock Starts Rolling'
WHEN g_playbyplay LIKE '%Clock Stopped%' THEN 'Clock Stoppage'
WHEN g_playbyplay LIKE '%Layup Made%' THEN 'Layup Made'
WHEN g_playbyplay LIKE '%2pt Made%' THEN '2 pt Made'
WHEN g_playbyplay LIKE '%3pt Made%' THEN '3 pt Made'
WHEN g_playbyplay LIKE '%Layup Miss%' THEN 'Layup Miss'
WHEN g_playbyplay LIKE '%2pt Miss%' THEN '2 pt Miss'
WHEN g_playbyplay LIKE '%3pt Miss%' THEN '3 pt Miss'
WHEN g_playbyplay LIKE '%Free Throw Made%' THEN 'FT Made'
WHEN g_playbyplay LIKE '%Free Throw Miss' THEN 'FT Miss'
WHEN g_playbyplay LIKE '%Foul%' THEN 'Foul'
WHEN g_playbyplay LIKE '%Defensive Rebound%' THEN 'Defensive Rebound'
WHEN g_playbyplay LIKE '%Offensive Rebound%' THEN 'Offensive Rebound'
WHEN g_playbyplay LIKE '%Forced Jump Ball%' THEN 'Forced Jump Ball'
WHEN g_playbyplay LIKE '%Assist%' THEN 'Assist'
WHEN g_playbyplay LIKE '%Steal%' THEN 'Steal'
WHEN g_playbyplay LIKE '%Block%' THEN 'Block'
WHEN g_playbyplay LIKE '%Timeout%' THEN 'Timeout'
WHEN g_playbyplay LIKE '%Turnover%' THEN 'Turnover'
ELSE 'Other'
END
FROM FakeGameCorrect;
或者,如果你真的想使用()
,它应该放在=
符号后面:
INSERT INTO Lineup_possessions (m_player, g_time, g_scorefor, g_scoreagainst, g_event)
SELECT
m_player = (
CASE
WHEN g_playbyplay LIKE '%N. Walter' THEN 'N Walter'
WHEN g_playbyplay LIKE '%B. Fish%' THEN 'B Fish'
WHEN g_playbyplay LIKE '%M. Wiese' THEN 'M Wiese'
WHEN g_playbyplay LIKE '%C. Stekl' THEN 'C Stekl'
WHEN g_playbyplay LIKE '%R. Whalen' THEN 'R Whalen'
WHEN g_playbyplay LIKE '%M. Pflughaupt' THEN 'M Pflughaupt'
WHEN g_playbyplay LIKE '%T. Kuethe' THEN 'T Kuethe'
WHEN g_playbyplay LIKE '%O. Carstensen' THEN 'O Carstensen'
WHEN g_playbyplay LIKE '%I. Hahn' THEN 'I Hahn'
WHEN g_playbyplay LIKE '%N. Schmidt' THEN 'N Schmidt'
WHEN g_playbyplay LIKE '%Marion%' THEN 'Team'
WHEN g_playbyplay LIKE '%Game Clock%' THEN 'Official'
ELSE 'Opponent'
END
),
g_time, -- New Column
g_ptsfor,
g_pointsagainst,
g_event = (
CASE
WHEN g_playbyplay LIKE '%Entered%' THEN 'Enter Game'
WHEN g_playbyplay LIKE '%Exited%' THEN 'Exit Game'
WHEN g_playbyplay LIKE '%Clock Started%' THEN 'Clock Starts Rolling'
WHEN g_playbyplay LIKE '%Clock Stopped%' THEN 'Clock Stoppage'
WHEN g_playbyplay LIKE '%Layup Made%' THEN 'Layup Made'
WHEN g_playbyplay LIKE '%2pt Made%' THEN '2 pt Made'
WHEN g_playbyplay LIKE '%3pt Made%' THEN '3 pt Made'
WHEN g_playbyplay LIKE '%Layup Miss%' THEN 'Layup Miss'
WHEN g_playbyplay LIKE '%2pt Miss%' THEN '2 pt Miss'
WHEN g_playbyplay LIKE '%3pt Miss%' THEN '3 pt Miss'
WHEN g_playbyplay LIKE '%Free Throw Made%' THEN 'FT Made'
WHEN g_playbyplay LIKE '%Free Throw Miss' THEN 'FT Miss'
WHEN g_playbyplay LIKE '%Foul%' THEN 'Foul'
WHEN g_playbyplay LIKE '%Defensive Rebound%' THEN 'Defensive Rebound'
WHEN g_playbyplay LIKE '%Offensive Rebound%' THEN 'Offensive Rebound'
WHEN g_playbyplay LIKE '%Forced Jump Ball%' THEN 'Forced Jump Ball'
WHEN g_playbyplay LIKE '%Assist%' THEN 'Assist'
WHEN g_playbyplay LIKE '%Steal%' THEN 'Steal'
WHEN g_playbyplay LIKE '%Block%' THEN 'Block'
WHEN g_playbyplay LIKE '%Timeout%' THEN 'Timeout'
WHEN g_playbyplay LIKE '%Turnover%' THEN 'Turnover'
ELSE 'Other'
END
)
FROM FakeGameCorrect;