Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एक स्ट्रिंग से गैर-संख्यात्मक वर्णों को पट्टी करें

आप इसे एक ही कथन में कर सकते हैं। आप वास्तव में 200+ रिप्लेस के साथ एक स्टेटमेंट नहीं बना रहे हैं, क्या आप हैं?!

update tbl
set S = U.clean
from tbl
cross apply
(
    select Substring(tbl.S,v.number,1)
    -- this table will cater for strings up to length 2047
    from master..spt_values v
    where v.type='P' and v.number between 1 and len(tbl.S)
    and Substring(tbl.S,v.number,1) like '[0-9]'
    order by v.number
    for xml path ('')
) U(clean)

काम करना SQL Fiddle नमूना डेटा के साथ इस क्वेरी को दिखा रहा है

भावी पीढ़ी के लिए नीचे दोहराया गया:

create table tbl (ID int identity, S varchar(500))
insert tbl select 'asdlfj;390312hr9fasd9uhf012  3or h239ur ' + char(13) + 'asdfasf'
insert tbl select '123'
insert tbl select ''
insert tbl select null
insert tbl select '123 a 124'

परिणाम

ID  S
1   390312990123239
2   123
3   (null)
4   (null)
5   123124


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर:अंकगणितीय परिचालनों में डेटा प्रकार रैंक?

  2. SQL सर्वर नेमिंग कन्वेंशन पर एक भावनात्मक तार्किक नज़र

  3. SQL सर्वर में दशमलव बिंदु के बाद दो अंक कैसे प्रदर्शित करें

  4. टीएसक्यूएल में किसी तारीख से कैलेंडर तिमाही कैसे प्राप्त करें

  5. डिवीजन ऑपरेटर का उपयोग करते समय एसक्यूएल सर्वर में गोल व्यवहार को न समझें