doc-exports/docs/dws/dev/dws_06_0031.html
Lu, Huayi ef0ada5a59 DWS DEV 20240716 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-11-02 09:07:47 +00:00

189 lines
21 KiB
HTML

<a name="EN-US_TOPIC_0000001510400997"></a><a name="EN-US_TOPIC_0000001510400997"></a>
<h1 class="topictitle1">Binary String Functions and Operators</h1>
<div id="body8662426"><p id="EN-US_TOPIC_0000001510400997__p36210549548">SQL defines some binary string functions that use keywords, rather than commas, to separate arguments. GaussDB(DWS) also provides the common syntax used for invoking functions.</p>
<div class="section" id="EN-US_TOPIC_0000001510400997__section877194894511"><h4 class="sectiontitle">octet_length(string)</h4><p id="EN-US_TOPIC_0000001510400997__p776716486453">Description: Returns the number of bytes in the given binary string.</p>
<p id="EN-US_TOPIC_0000001510400997__p1176794813455">Return type: integer</p>
<p id="EN-US_TOPIC_0000001510400997__p276714824518">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen17689487454"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">octet_length</span><span class="p">(</span><span class="n">E</span><span class="s1">'jo\\000se'</span><span class="p">::</span><span class="n">bytea</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span>
<span class="c1">--------</span>
<span class="w"> </span><span class="mi">5</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section10414656114516"><h4 class="sectiontitle">overlay(string placing string from int [for int])</h4><p id="EN-US_TOPIC_0000001510400997__p1412195619451">Description: Replaces the given substring.</p>
<p id="EN-US_TOPIC_0000001510400997__p6412115624512">Return type: bytea</p>
<p id="EN-US_TOPIC_0000001510400997__p941255654514">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen1341211565454"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">overlay</span><span class="p">(</span><span class="n">E</span><span class="s1">'Th\\000omas'</span><span class="p">::</span><span class="n">bytea</span><span class="w"> </span><span class="k">placing</span><span class="w"> </span><span class="n">E</span><span class="s1">'\\002\\003'</span><span class="p">::</span><span class="n">bytea</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">----------------</span>
<span class="w"> </span><span class="err">\</span><span class="n">x5402036d6173</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section78861557164917"><h4 class="sectiontitle">position(substring in string)</h4><p id="EN-US_TOPIC_0000001510400997__p8884557124913">Description: Returns the location of the given substring.</p>
<p id="EN-US_TOPIC_0000001510400997__p28841257184915">Return type: integer</p>
<p id="EN-US_TOPIC_0000001510400997__p178846572497">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen20884125715497"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">position</span><span class="p">(</span><span class="n">E</span><span class="s1">'\\000om'</span><span class="p">::</span><span class="n">bytea</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">E</span><span class="s1">'Th\\000omas'</span><span class="p">::</span><span class="n">bytea</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span>
<span class="c1">--------</span>
<span class="w"> </span><span class="mi">3</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section123341305504"><h4 class="sectiontitle">substring(string [from int] [for int])</h4><p id="EN-US_TOPIC_0000001510400997__p1333312016509">Description: Truncates the given substring.</p>
<p id="EN-US_TOPIC_0000001510400997__p16333190155016">Return type: bytea</p>
<p id="EN-US_TOPIC_0000001510400997__p633313055012">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen2333605502"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">substring</span><span class="p">(</span><span class="n">E</span><span class="s1">'Th\\000omas'</span><span class="p">::</span><span class="n">bytea</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span><span class="w"> </span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">----------</span>
<span class="w"> </span><span class="err">\</span><span class="n">x68006f</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001510400997__p13333190135017">Truncate the time and obtain the number of hours.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen333417013503"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">substring</span><span class="p">(</span><span class="s1">'2022-07-18 24:38:15'</span><span class="p">,</span><span class="mi">12</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span>
<span class="c1">-----------</span>
<span class="w"> </span><span class="mi">24</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section141866655020"><h4 class="sectiontitle">trim([both] bytes from string)</h4><p id="EN-US_TOPIC_0000001510400997__p1618615611501">Description: Removes the longest string containing only bytes from <strong id="EN-US_TOPIC_0000001510400997__b8423527069119">bytes</strong> from the start and end of <strong id="EN-US_TOPIC_0000001510400997__b84235270691116">string</strong>.</p>
<p id="EN-US_TOPIC_0000001510400997__p14186166125017">Return type: bytea</p>
<p id="EN-US_TOPIC_0000001510400997__p318636175019">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen418616611508"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">trim</span><span class="p">(</span><span class="n">E</span><span class="s1">'\\000'</span><span class="p">::</span><span class="n">bytea</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">E</span><span class="s1">'\\000Tom\\000'</span><span class="p">::</span><span class="n">bytea</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">----------</span>
<span class="w"> </span><span class="err">\</span><span class="n">x546f6d</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section173878133502"><h4 class="sectiontitle">substring_index(string, delim, count)</h4><p id="EN-US_TOPIC_0000001510400997__p4285418165013">Description: Searches for delimiters in a case-sensitive manner and returns the substring before the delimiter that appears for the <strong id="EN-US_TOPIC_0000001510400997__b1510253251715">count</strong> time. If <strong id="EN-US_TOPIC_0000001510400997__b429917016187">count</strong> is a negative number, count for the delimiter reversely from the end. If the parameter contains NULL, NULL will be returned. This function is supported by version 8.2.0 or later clusters.</p>
<p id="EN-US_TOPIC_0000001510400997__p1428561885010">Return type: text</p>
<p id="EN-US_TOPIC_0000001510400997__p628581818503">Example: In the string <strong id="EN-US_TOPIC_0000001510400997__b721511291396">www.wWw.cloud.wWw.com</strong>, find the delimiter <strong id="EN-US_TOPIC_0000001510400997__b102157295912">.wWw.</strong> that appears the second time in a case-sensitive manner. Return the substring before it: <strong id="EN-US_TOPIC_0000001510400997__b121520299916">www.wWw.cloud</strong>.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen528515185502"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">SUBSTRING_INDEX</span><span class="p">(</span><span class="s1">'www.wWw.cloud.wWw.com'</span><span class="p">,</span><span class="w"> </span><span class="s1">'.wWw.'</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span>
<span class="c1">---------------</span>
<span class="w"> </span><span class="n">www</span><span class="p">.</span><span class="n">wWw</span><span class="p">.</span><span class="n">cloud</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section16117534165110"><h4 class="sectiontitle">btrim(string bytea,bytes bytea)</h4><p id="EN-US_TOPIC_0000001510400997__p411415344519">Description: Removes the longest string containing only bytes from <strong id="EN-US_TOPIC_0000001510400997__b1594354347">bytes</strong> from the start and end of <strong id="EN-US_TOPIC_0000001510400997__b193494082">string</strong>.</p>
<p id="EN-US_TOPIC_0000001510400997__p19114734115118">Return type: bytea</p>
<p id="EN-US_TOPIC_0000001510400997__p151144341516">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen181152347510"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">btrim</span><span class="p">(</span><span class="n">E</span><span class="s1">'\\000trim\\000'</span><span class="p">::</span><span class="n">bytea</span><span class="p">,</span><span class="w"> </span><span class="n">E</span><span class="s1">'\\000'</span><span class="p">::</span><span class="n">bytea</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">------------</span>
<span class="w"> </span><span class="err">\</span><span class="n">x7472696d</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section8833143665114"><h4 class="sectiontitle">get_bit(string, offset)</h4><p id="EN-US_TOPIC_0000001510400997__p178301836105113">Description: Returns the number of bits in the given string.</p>
<p id="EN-US_TOPIC_0000001510400997__p08302369519">Return type: integer</p>
<p id="EN-US_TOPIC_0000001510400997__p1830123615511">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen168311936135120"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">get_bit</span><span class="p">(</span><span class="n">E</span><span class="s1">'Th\\000omas'</span><span class="p">::</span><span class="n">bytea</span><span class="p">,</span><span class="w"> </span><span class="mi">45</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span><span class="w"> </span>
<span class="w"> </span><span class="k">result</span>
<span class="c1">--------</span>
<span class="w"> </span><span class="mi">1</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section157461439145116"><h4 class="sectiontitle">get_byte(string, offset)</h4><p id="EN-US_TOPIC_0000001510400997__p17745193910516">Description: Returns the number of bytes in the given string.</p>
<p id="EN-US_TOPIC_0000001510400997__p27451392519">Return type: integer</p>
<p id="EN-US_TOPIC_0000001510400997__p187456392514">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen6745939115116"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">get_byte</span><span class="p">(</span><span class="n">E</span><span class="s1">'Th\\000omas'</span><span class="p">::</span><span class="n">bytea</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span><span class="w"> </span>
<span class="w"> </span><span class="k">result</span>
<span class="c1">--------</span>
<span class="w"> </span><span class="mi">109</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section86851242175114"><h4 class="sectiontitle">set_bit(string,offset, newvalue)</h4><p id="EN-US_TOPIC_0000001510400997__p168454218516">Description: Sets bits in the given string.</p>
<p id="EN-US_TOPIC_0000001510400997__p86841542175116">Return type: bytea</p>
<p id="EN-US_TOPIC_0000001510400997__p4685134235119">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen1368584219514"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">set_bit</span><span class="p">(</span><span class="n">E</span><span class="s1">'Th\\000omas'</span><span class="p">::</span><span class="n">bytea</span><span class="p">,</span><span class="w"> </span><span class="mi">45</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span><span class="w"> </span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">------------------</span>
<span class="w"> </span><span class="err">\</span><span class="n">x5468006f6d4173</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001510400997__section73351845155117"><h4 class="sectiontitle">set_byte(string,offset, newvalue)</h4><p id="EN-US_TOPIC_0000001510400997__p333511457514">Description: Sets bytes in the given string.</p>
<p id="EN-US_TOPIC_0000001510400997__p20335545195115">Return type: bytea</p>
<p id="EN-US_TOPIC_0000001510400997__p103351245155116">Examples:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510400997__screen033574518511"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">set_byte</span><span class="p">(</span><span class="n">E</span><span class="s1">'Th\\000omas'</span><span class="p">::</span><span class="n">bytea</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">64</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span><span class="w"> </span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">------------------</span>
<span class="w"> </span><span class="err">\</span><span class="n">x5468006f406173</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0027.html">Functions and Operators</a></div>
</div>
</div>