Substring

SQL查詢根據分隔符(不是位置)比較字元串中某個位置的(HL7)值

  • August 7, 2015

這很複雜,因為我不知道後端使用什麼 DBMS。我知道它是記憶體,但我似乎除了最基本的命令之外什麼都做不了。我似乎無法設置或聲明變數。

這是一個例子:

MSH|^~&|不重要|這是我要的子串^123123123^ABC|不重要|…

所以讓我們稱這個特定的子字元串 SendingFacility。 寫這樣的東西最簡單、最兼容的方式是什麼:

SELECT * WHERE SendingFacility = 'This is the substring I want'

我試過SELECT WHERE SendingFacility REGEXP '<some regex>'了,但我收到以下錯誤:

[Error Code: 14, SQL State: 37000] [SQLCODE: <-14>:<A comparison operator is required here>]

如果這看起來像 HL7,那是因為它是 :)

這有效

SELECT *
FROM    
      TABLE
WHERE   
      $PIECE($PIECE(HL7Message,'|',4),'^',1) = 'This is the substring I want'

或根據其他條件獲取 Sendingfacility

SELECT $PIECE($PIECE(HL7Message,'|',4),'^',1) as SendingFacility
FROM TABLE
WHERE <whatever>

引用自:https://dba.stackexchange.com/questions/98832