【问题标题】:Attempting to add a prefix to a column in SQL Server 2008尝试向 SQL Server 2008 中的列添加前缀
【发布时间】:2022-01-23 02:30:02
【问题描述】:

我正在尝试使用 'from' x 表添加带有条件的前缀,然后使用 where 来指定 id

例如:

UPDATE tablenameX 
SET columnnameX = 'prefix' + columnnameX 
FROM tablenameY 
WHERE columnnameY = 'id'

我真的看不出它在columnnameX 之后拒绝阅读的问题在哪里,我的意思是它会毫无问题地执行,但是它忽略了我试图使用的论点,它适用于每个列条目。

我用过很多这种简单的 SQL 命令都没有问题,我不知道如何修复它,也不知道如何构建本质上更复杂的东西 - 我是新手,所以忍受我。

【问题讨论】:

  • 这些表有什么关系?两张桌子都有columnnameY,如果只是选择,这就是你加入的方式?您仍然必须在此处执行联接(或至少是半联接),但除非您告诉我们要加入什么,否则我们无法告诉您如何执行此操作。另外,请始终为您的列添加前缀,以便清楚它们来自哪个表!我们看不到您的架构,所以我们不知道。
  • 我在解释部分不好,没有添加更多细节,所以它们只有 1 列共享相同的信息值,但是它们具有不同的列名,除了存在之外,它们没有任何其他共享点在同一个数据库中,让我给你一个我的表结构的例子,所以表 1 结构看起来像这样:id - 名称 - 用户 id 和一些无意义的列表 2 看起来像这个 id(就像计数器) -type -char ID这些表之间的共同链接是表 1 中的 ID 和表 2 中的字符 ID 在我上面的声明中我声明 columnnamey='id' 我使用的是 'type'

标签: sql-server-2008 prefix


【解决方案1】:

我不确定连接条件是什么,因为您没有告诉我们 X 和 Y 是如何相关的,但是相关连接看起来像这样:

UPDATE x
  SET x.columnnameX = 'prefix' + x.columnnameX
  FROM dbo.tablenameX AS x
  INNER JOIN dbo.tablenameY AS y
  ON y.< ??? something ??? > = x.< ??? something ???>
  WHERE y.columnnameY = 'id';

或者像这样:

UPDATE x
  SET x.columnnameX = 'prefix' + x.columnnameX   
  FROM dbo.tablenameX AS x
  WHERE EXISTS
  (
    SELECT 1 FROM dbo.tablenameY AS y
      WHERE columnnameY = 'id'
      AND y.< ??? something ??? > = x.< ??? something ???>
  );

【讨论】:

    猜你喜欢
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2012-08-11
    相关资源
    最近更新 更多