我有一个看起来像
的列Quarter
-------
Q1 2012
Q2 2012
Q1 2013
我想要
Quarter
-------
Q1
Q2
Q1
以下是我所拥有的内容:
UPDATE TABLE [WA Products Sales].[dbo].[WA_Sales_Products]
SET
Quarter = REPLACE (Quarter, SUBSTRING(Quarter, 1, CHARINDEX(' ', Quarter)-1)
返回
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'TABLE'.
任何帮助都将不胜感激。
答案 0 :(得分:1)
此查询的问题:
UPDATE TABLE [WA Products Sales].[dbo].[WA_Sales_Products]
SET Quarter = REPLACE(Quarter, SUBSTRING(Quarter, 1, CHARINDEX(' ', Quarter)-1)
是Quarter
没有空格时失败。一个更小的问题是LEFT()
更合适。您可以通过添加空格来解决第一个问题:
UPDATE TABLE [WA Products Sales].[dbo].[WA_Sales_Products]
SET Quarter = LEFT(Quarter, CHARINDEX(' ', Quarter + ' ') - 1);
这应该可以解决LEFT()
的错误参数问题。
答案 1 :(得分:0)
除非我遗漏了某些内容,否则这应该会得到您想要的结果:
UPDATE [WA Products Sales].[dbo].[WA_Sales_Products]
SQL Quarter = LEFT(Quarter, 2)
WHERE LEN(Quarter) > 1 -- added this condition