SQL分裂樣選擇
回答
如果您使用的是支持,你可以寫上解析出來,並返回唯一值的表用戶定義函數的SQL引擎。如果你打算做很多事情,你可能會更好地將它們存儲爲單獨的字段,以便您可以使用DML而不是自定義代碼來操作它們。
如果您使用SQL Server 2005,則可以通過CLR集成調用.NET代碼(例如C#或VB.NET正則表達式功能)。這裏有一個文章,讓你開始,我敢肯定,谷歌將露面其它更多:http://msdn.microsoft.com/en-us/magazine/cc163473.aspx
create table tbl(data varchar(200))
insert into tbl(data)
select 'A12345' data union all
select 'AB456' union all
select '1234' union all
select 'AA 45'
-------------
select LEFT(data, PATINDEX('%[0-9]%', data)-1) as Letters,
CAST(SUBSTRING(data, PATINDEX('%[0-9]%', data), 10000) AS INT) as Numbers
from tbl
我可以被認爲是sql中的新手...你對這個解決方案有什麼看法?謝謝。 (REPLACE(REPLACE('ABC34567','1',''),'2',''),'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 3' , ''), '4', ''), '5', ''), '6', ''), '7', ''), '8', ''), '9' ('ABC34567','''),'0',''), SUBSTRING('ABC34567',LEN(REPLACE(REPLACE(REPLACE('REPLACE',REPLACE ''), '2', ''), '3', ''), '4', ''), '5', ''), '6', ''), '7', '' ), '8', ''), '9', ''), '0', ''))+ 1,LEN( 'ABC34567')) – dfm 2010-02-18 20:19:55
如果沒有正則表達式的話,或許這樣的事情將削減它。
SQL> with t as (select 'A12345' as str from dual
2 union all
3 select 'AB456' as str from dual
4 union all
5 select '1234' as str from dual
6 union all
7 select 'AA 45' as str from dual)
8 select str
9 , replace(translate(str, ''
10 , ' '), ' ', null) as AAA
11 , replace(translate(str, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
12 , ' '), ' ', null) as NNN
13 from t
14/
STR AAA NNN
------ ------ ------
A12345 A 12345
AB456 AB 456
1234 1234
AA 45 AA 45
SQL>
的translate()
函數轉換的數字(或字母)爲空格,那麼replace()
變成空格成空值。
- 1. jQuery的分裂/塊選擇
- 2. SQL如何添加ID列陷入分裂選擇
- 3. Symfony2的選擇形式分裂
- 4. 分裂:選擇正確的按鈕
- 5. 分裂陣列同樣:
- 6. SQL Server的分裂名
- 7. SQL分裂時過子時
- 8. SQL「分裂」基團通過
- 9. 表分裂/可選關係
- 10. Python:分裂和分裂
- 11. SQL選擇充分小時
- 12. SQL選擇存在部分
- 13. SQL選擇性分組
- 14. Problèm與SQL選擇分組
- 15. SQL分組導致選擇
- 16. SQl選擇百分比
- 17. 的Javascript分裂陣列同樣
- 18. SQL選擇拆分列,然後在其他分發現選擇
- 19. 選擇時選擇樣式?
- 20. 的Oracle SQL選擇在那裏同樣
- 21. 選擇選擇SQL
- 22. 材料ui selectFiled多選擇默認值分裂爲多個值
- 23. 使用分裂從動態菜單中選擇
- 24. ASP Classic-分裂()由用於多值選擇
- 25. 分裂選擇(值)返回屬性錯誤
- 26. 分裂在斯卡拉儀表板和選擇第二個
- 27. 分裂
- 28. 分裂
- 29. 淨分裂與分裂字符保留
- 30. SQL正則表達式分裂列
您的第五個示例行中的空格是否與字母一起包含或被丟棄? – 2010-02-18 14:46:07
請包括您正在使用的數據庫的品牌,因爲SQL功能因引擎而異。例如,有些允許正則表達式,有些則不允許。 – 2010-02-18 15:03:16