不幸的是,我有類似下面的表格:法從非標準標記字符串值的PostgreSQL
DROP TABLE IF EXISTS my_list;
CREATE TABLE my_list (index int PRIMARY KEY, mystring text, status text);
INSERT INTO my_list
(index, mystring, status) VALUES
(12, '', 'D'),
(14, '[id] 5', 'A'),
(15, '[id] 12[num] 03952145815', 'C'),
(16, '[id] 314[num] 03952145815[name] Sweet', 'E'),
(19, '[id] 01211[num] 03952145815[name] Home[oth] Alabama', 'B');
有什麼訣竅從上面顯示的文本mystring
走出[id]
數量integer
?彷彿我跑下面的查詢:
SELECT index, extract_id_function(mystring), status FROM my_list;
,並得到了類似的結果:
12 0 D
14 5 A
15 12 C
16 314 E
19 1211 B
優選僅簡單的字符串函數,如果沒有正則表達式將被罰款。
**總是在問題**中指定PostgreSQL版本。 (請在完成後進行編輯和評論)。然後請找出設計該架構的人並向他們說明意思;-)。無論如何,我會給出答案。 –
另外,*爲什麼*你想避免正則表達式?有時他們是工作的正確工具。尤其是考慮到SQL中的字符串操作有多痛苦,因爲無法在同一查詢級別的其他位置輕鬆引用值。 –
我在Windows 7上的實際版本是9.1。我使用正則表達式對查詢進行了一些測試,然後發現該正則表達式在unicode字母方面存在問題,而這些字母常常是我的語言,所以我不能使用它可靠。很明顯,我做出了這個shema,我準備好爲自己說:)但是今天我絕對不會那麼做。用於我使用的編程。NET這樣的表達式不是問題,但我對PostgreSQL的想法不夠。 –