【问题标题】:Edit data during SQL Query without editing table before hand在 SQL Query 期间编辑数据而不事先编辑表
【发布时间】:2020-03-12 00:43:23
【问题描述】:

我正在运行 access 2015 的查询(我在这里没有选择)并得到以下输出。

course_id       long_name                         short_name    Class Descriptor    status
0AGR1A          10 AGRICULTURE                        10 AG                          active
0ENG1A          YEAR 10 ENGLISH                       10 ENG                         active
0HPE1A          10 HEALTH & PERSONAL DEVELOPMENT      10 HPE                         active
0SCI1A          10 SCIENCE                            10 SCIENCE                     active
0SCO1A          SAASTA                                                               active

我需要将 _2020 添加到 course_id 列中每个单元格的末尾。所以他们将是 0AGR1A_2020 等等。

我正在使用以下查询来获取此数据

SELECT SCHOOCD.[Class Number] AS course_id, SCHOOSUB.[Subject Name] AS long_name, SCHOOSUB.[Subject Short Name] AS short_name, SCHOOCDE.[Class Descriptor], "active" AS status
FROM (SCHOOCD INNER JOIN SCHOOSUB ON SCHOOCD.[Subject Code] = SCHOOSUB.[Subject Code]) LEFT JOIN SCHOOCDE ON SCHOOCD.[Class Number] = SCHOOCDE.[Class Number]
WHERE (((SCHOOSUB.[Subject Name])<>"UNAVAILABLE") AND ((SCHOOCD.[Academic Period])=0 Or (SCHOOCD.[Academic Period])=5 Or (SCHOOCD.[Academic Period])=1));

我知道我需要做一些类似的事情

UPDATE SCHOOCD SET course_id = CONCAT(course_id, '_2020')

但我无法让它工作。我对 SQL 非常陌生,因此我们将不胜感激。

【问题讨论】:

  • 这似乎有点模棱两可。您想更改表中的数据还是只更改查询输出中的数据而不触及表的内容?

标签: sql database ms-access


【解决方案1】:

Access 中没有concat() 函数。您可以改用&amp;

course_id & "_2020"

如果你想在你的select 声明中使用这个:

SELECT SCHOOCD.[Class Number] & "_2020" AS course_id, ...
FROM ...
WHERE ...

如果您正在寻找 update,它会永久修改表中的值:

UPDATE SCHOOCD SET [Class Number] = [Class Number] & "_2020"

【讨论】:

  • 你是绝对的救星。谢谢!
猜你喜欢
  • 2016-02-14
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多