मेरे पास एक व्यावसायिक आवश्यकता है जिसमें कई सीमांकक के साथ [स्नोफ्लेक] में एक VARCHAR कॉलम है। मैं @,{,<,?.. जैसे कई सीमांककों के आधार पर अनुरोधित भाग प्राप्त करने के लिए स्नोफ्लेक में उपलब्ध STRTOK फ़ंक्शन का उपयोग कर रहा हूं। सीमांकक में से एक प्रश्न चिह्न (?) है, लेकिन स्नोफ्लेक समर्थन नहीं कर रहा है? STRTOK फ़ंक्शन में एक सीमांकक के रूप में। कृपया कोई इसके लिए कोई अन्य विकल्प सुझा सकता है। आप नीचे दिए गए उदाहरण का उल्लेख कर सकते हैं।

WITH tbl
  AS (select t.column1 mycol from values
('discount-offer&kclickid=9b1946f1-1239-12gh-1cc8-a20dfg2f1dcv'),
('penny-offer?AID=10854181&PID=8330848&CID=4918330&affpat=1'),
('abc^123'),
('kxncjdhc#kjhcjk'),
('ndcjdnjd%^k&dh'),
('jsndj*') t )
SELECT mycol,
strtok(mycol,' !"#$%&()*+,./:;<=>?@[\]^_`{|}~"',1)
FROM tbl
0
Kalpana 15 जून 2021, 17:15
आपकी Values स्ट्रिंग में प्रश्न चिह्न प्रश्न चिह्न नहीं है। यह एक "पूरी चौड़ाई वाला प्रश्न चिह्न" वर्ण है। इसे अपने स्ट्रोक में इस्तेमाल करें और यह काम करना शुरू कर देगा। यहां एक कार्यशील उदाहरण दिया गया है: SELECT strtok('penny-offer?AID=10854181&PID=8330848&CID=4918330&affpat=1','?',1)
 – 
JNevill
15 जून 2021, 17:21
मेरे प्रश्न का उत्तर देने के लिए धन्यवाद। यह तब काम कर रहा है जब हम STRTOK () में एक डिलीमीटर (?) का उपयोग करते हैं। एकाधिक सीमांकक के साथ, यह अपेक्षित परिणाम नहीं दिखा रहा है। tbl AS के साथ (मानों से t.column1 mycol चुनें ('डिस्काउंट-ऑफ़र&kclickid=9b1946f1-1239-12gh-1cc8-a20dfg2f1dcv'), ('पैसा-ऑफ़र?AID=10854181&PID=8330848&CID=4918330&affpat=1'), ('abc ^123'),('kxncjdhc#kjhcjk'),('ndcjdnjd%^k&dh'),('jsndj*') t ) mycol चुनें, strtok(mycol,'? !"#$%&()*+, ./:;<=>?@[]^_`{|}~"',1) टीबीएल से
 – 
Kalpana
15 जून 2021, 19:11
आपके सीमांकक पैरामीटर में अभी भी पूर्ण चौड़ाई वाला प्रश्न चिह्न वर्ण नहीं है। कोशिश करें: WITH tbl AS (select t.column1 mycol from values('discount-offer&kclickid=9b1946f1-1239-12gh-1cc8-a20dfg2f1dcv'), ('penny-offer?AID=10854181&PID=8330848&CID=4918330&affpat=1'), ('abc^123'),('kxncjdhc#kjhcjk'),('ndcjdnjd%^k&dh'),('jsndj*') t ) SELECT mycol,strtok(mycol,'?? !"#$%&()*+,./:;<=>?@[]^_{|}~"',1) tbl` से आप उन दो प्रमुख प्रश्न चिह्नों में दोनों अंतर देख सकते हैं। एक सामान्य ASCII है और दूसरा यूनिकोड पूर्ण चौड़ाई संस्करण है। (स्नोफ्लेक में परीक्षण किया गया) बस अब)
 – 
JNevill
15 जून 2021, 19:30
अपनी त्वरित प्रतिक्रिया के लिए धन्यवाद । यह अब काम कर रहा है
 – 
Kalpana
15 जून 2021, 20:34

1 उत्तर

सबसे बढ़िया उत्तर

टिप्पणियों से उत्तर को पूर्णता के उत्तर में ले जाना:

  • समस्या यह थी कि परीक्षण इनपुट में प्रश्न चिह्न एक सामान्य प्रश्न चिह्न नहीं था, बल्कि एक "पूरी चौड़ाई वाला प्रश्न चिह्न" वर्ण था:

  • इसलिए समाधान उस वर्ण को strtok() फ़ंक्शन में जोड़ रहा था।

(thx @JNevill)

0
Felipe Hoffa 16 जून 2021, 10:00