语法不正确,无法使用CHARINDEX

时间:2016-03-16 15:45:35

标签: sql sql-server

我正在用SQL编写,尝试使用CHARINDEX通过字符'\'拆分字段。

感兴趣的列的可能条目将采用以下格式:

J1 \ 1

J1 \ 2

J10 \ 3

J11 \ 40

我试图将字符隔离在反斜杠的左边。

我的查询目前看起来像这样:

<div class='panel-body'>
  <ol>
    <h4 class="people" style="font-family: sans-serif; display: block;">
    <li>
      <span class="name">One, O</span>
      <span class="status" style="color: rgb(79, 133, 27);">Arrived</span>
      <span class="time"  style="width: 97px; max-width: 97px;">In Service</span>
    </li>
  </h4>

    <h4 class="people" style="font-family: sans-serif; display: block;">
  <li>
    <span class="name">Two, T</span>
    <span class="status" style="color: rgb(79, 133, 27);">Arrived</span>
    <span class="time"  style="width: 97px; max-width: 97px;">Next</span>
  </li>
  </h4>
    <h4 class="people" style="font-family: sans-serif; display: block;">
    <li>
      <span class="name">thr, t</span>
      <span class="status" style="color: rgb(79, 133, 27);">Arrived</span>
      <span class="time"  style="width: 97px; max-width: 97px;">1 hr 20 min</span>
    </li>
  </h4>
  </ol>
</div>

我没有包含所有连接,因为我不认为它在语法不正确的情况下是相关的。

第一种情况将返回完整的字符串,即'J1 \ 1'等等。

第二种情况'应该'返回反斜杠的索引。

最后,第三种情况会返回字符串,用反斜杠切断。

如果我能让CHARINDEX工作,我也希望能够使用一个案例而不是3个来完成这个任务。

我的问题是,当我尝试运行查询时,我可能会出现错误,说“查询无效。'''附近的语法不正确”。我做错了什么?

提前感谢您的帮助。干杯

完整查询,按要求:

SELECT DISTINCT

CASE
    WHEN C1_From.com_com_id = C2_From.com_id
        THEN C1_From.com_tag
END AS PP_From,

CASE
    WHEN C1_From.com_com_id = C2_From.com_id
        THEN CHARINDEX('\\', C1_From.com_tag)
END AS PP_From_INDEX,   

CASE
    WHEN C1_From.com_com_id = C2_From.com_id
        THEN LEFT(C1_From.com_tag,2)
END AS PP_From_CHOP,

0 个答案:

没有答案