如何更新列
How to Update a Column
我有 SQL Express 2012,其中 table 我为字数添加了一列(整数),table 已经有几百行。我不确定如何更新该列以获取 "entry" 列中的字数。
我创建了一个显示数据的查询,但如何使用它来更新 table 以存储每个条目的字数?
SELECT
ID,
[UserName],
[DateCreated],
LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1 AS 'Word Count'
FROM [dbo].[Notes]
试试这段代码。
UPDATE Notes SET
WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1
然后这应该使用该行的字数更新 table 中的所有行。
谢谢,
SQL 语言中用于更新 table 中的数据的动词并不奇怪 UPDATE
。 The documentation has the full syntax.
如果您想更新所有行并且 Entry
列中没有 NULL
值(这会使计算失败),那么此查询将更新名为 [=14= 的列]:
UPDATE Notes SET WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1
以下是您如何做到这一点,以便您的值始终是最新的。这里有两大优势。首先,您不必更新 table。其次,即使有人用查询更新了您的 table 而没有更新 WordCount,这些值也始终是最新的。
create table #test
(
Entry varchar(100)
, WordCount as LEN(Entry) - LEN(REPLACE(Entry, ' ', ''))
)
insert #test
select 'two words' union all
select 'three words now'
select * from #test
drop table #test
我有 SQL Express 2012,其中 table 我为字数添加了一列(整数),table 已经有几百行。我不确定如何更新该列以获取 "entry" 列中的字数。
我创建了一个显示数据的查询,但如何使用它来更新 table 以存储每个条目的字数?
SELECT
ID,
[UserName],
[DateCreated],
LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1 AS 'Word Count'
FROM [dbo].[Notes]
试试这段代码。
UPDATE Notes SET
WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1
然后这应该使用该行的字数更新 table 中的所有行。
谢谢,
SQL 语言中用于更新 table 中的数据的动词并不奇怪 UPDATE
。 The documentation has the full syntax.
如果您想更新所有行并且 Entry
列中没有 NULL
值(这会使计算失败),那么此查询将更新名为 [=14= 的列]:
UPDATE Notes SET WordCount = LEN([Entry]) - LEN(REPLACE([Entry], ' ', '')) + 1
以下是您如何做到这一点,以便您的值始终是最新的。这里有两大优势。首先,您不必更新 table。其次,即使有人用查询更新了您的 table 而没有更新 WordCount,这些值也始终是最新的。
create table #test
(
Entry varchar(100)
, WordCount as LEN(Entry) - LEN(REPLACE(Entry, ' ', ''))
)
insert #test
select 'two words' union all
select 'three words now'
select * from #test
drop table #test