有人請分享他們在這個複雜模式匹配的專業知識。sql server 2008中的複雜模式匹配
我不知道是否有可能在SQL
DDL
DECLARE @MASTERAPP TABLE
(
TYPE VARCHAR (50),
Respiration_notes VARCHAR (50)
)
INSERT @MASTERAPP
SELECT 'LUNGSLINE', '20 Inch-OE Size; P-275-55-20; 109S' UNION ALL-- INVALID REMARKS_2
SELECT 'LUNGSLINE', '20 Inch-OE Size; P-275-55-20; 109S' UNION ALL
SELECT 'LUNGSLINE', '20 Inch-Plus Size; P-275-55-20; 113S; 9.5' UNION ALL
SELECT 'LUNGSLINE', '20 Inch-Plus Size; Q-888-XX-20; 113S; 9.5;Maleward,bed no 16' -- INVALID Remarks_1_Value
DECLARE @CHILD TABLE
(
TYPE VARCHAR (50),
Remarks_1 VARCHAR (50),
Remarks_1_Value VARCHAR (50),
Remarks_2 VARCHAR (50),
Remarks_2_Value VARCHAR (50)
)
INSERT @CHILD
SELECT 'LUNGSLINE', 'LUNGS Metric', 'P-275-55-20', 'LungsService', '111T' UNION ALL
SELECT 'LUNGSLINE', 'LUNGS Metric', 'P-275-55-20', 'LungsService', '117S' UNION ALL
SELECT 'LUNGSLINE', 'LUNGS Metric', 'P-275-55-20', 'LungsService', '113S'
我試圖檢查Respiration_notes是否含有正確的值或者不
Respiration_notes應該包含相同的值。在第一個分號後出現的Remarks_1_Value和Respiration_notes中第二個分號後的Remarks_2_Value出現。
兩個表格之間的共同鍵是Type。
感謝您的建議。
輸出
'LUNGSLINE', '20 Inch-OE Size; P-275-55-20; 109S' UNION ALL-- INVALID REMARKS_2_value
'20 Inch-Plus Size; Q-888-XX-20; 113S; 9.5;Maleward,bed no 16' -- INVALID Remarks_1_Value
這只是將多個數據嵌入到數據庫的單個列中的許多問題之一(這實際上是您 - 或者設計數據庫的人 - 已經完成)。不要這樣做。我確信可以找到一個解決方案,我會盡快看到是否可以推出一個解決方案,但這只是如果繼續使用此設計將面臨的頭痛問題的開始。 –
我回應了Tom H關於在單個列中嵌入多個值的說法。也許,第一種方法是將多個值拆分爲單獨的列或行(最好在您的設計中,但可以使用具有現有結構的函數完成) - 這將使您的查詢變得更加簡單。 –
@TomH:謝謝湯姆。它的客戶端數據庫,我們沒有任何權利來更改數據庫結構...我們現在正在死亡... :) – akhrot