Sql 尝试将三个单独的SELECT语句合并到一个主SELECT语句中

Sql 尝试将三个单独的SELECT语句合并到一个主SELECT语句中,sql,tsql,Sql,Tsql,问题出在这里。我的表中有3个字段,其中可能包含数据,并在末尾附加了一个额外的引号。所以,我试图运行一个select语句,如果这个额外的字符存在,它将从这些字段中删除这个额外的字符。我可以很好地编写3个单独的查询,它们都可以工作,但我正在尝试将它们全部合并到一个查询中。以下是我到目前为止所拥有的,我知道我的方式可能不正确: 下面是返回的结果集。请注意,所有三列都是NULL。它们不应该是: 下面是一个单独的查询,一次只能查询一个字段: 你能告诉我我做错了什么吗?你可以删除选择列表中的where

问题出在这里。我的表中有3个字段,其中可能包含数据,并在末尾附加了一个额外的引号。所以,我试图运行一个select语句,如果这个额外的字符存在,它将从这些字段中删除这个额外的字符。我可以很好地编写3个单独的查询,它们都可以工作,但我正在尝试将它们全部合并到一个查询中。以下是我到目前为止所拥有的,我知道我的方式可能不正确:

下面是返回的结果集。请注意,所有三列都是
NULL
。它们不应该是:

下面是一个单独的查询,一次只能查询一个字段:


你能告诉我我做错了什么吗?

你可以删除选择列表中的where以及不相关的子查询,并可能将其简化为

SELECT 
  AID
  , EID
  , STOREID
  , [Language]
  , 'BrandLabel' = CASE WHEN BrandLabel LIKE '%"' 
                         THEN LEFT(BrandLabel, LEN(BrandLabel) -1)
                        ELSE BrandLabel
                   END
  , 'Terms' = CASE WHEN Terms LIKE '%"' 
                         THEN LEFT(Terms, LEN(Terms) -1)
                        ELSE Terms
                   END
  , 'TrackOrderLbl' = CASE WHEN TrackOrderLbl LIKE '%"' 
                         THEN LEFT(TrackOrderLbl, LEN(TrackOrderLbl) -1)
                        ELSE TrackOrderLbl
                   END
FROM parallel_Purchase_Email_Content_OMS WITH (NOLOCK)

你为什么要做这些子查询而不把它们加入到任何东西中?除了我缺乏经验之外,没有什么特别的原因。这很公平。考虑将查询粘贴到问题而不是截图中。不必重新键入查询可能会得到其他答案。您是否以图像形式发布查询,以便无法复制和粘贴它们?是的,我复制的服务器不允许从服务器复制并粘贴到服务器外部。。。不幸的是,这将删除每个字段的最后一个字符,即使最后一个字符不应该被删除。如果结尾没有双引号,就不应该删除,否则应该删除。啊,错过了结尾的双引号。。。看起来像“%”。我会更新。这实际上是我在自己尝试解决这个问题时提出的解决方案。:)