<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog de SQLpro &#187; intervalle</title>
	<atom:link href="https://blog.developpez.com/sqlpro/ptag/intervalle/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/sqlpro</link>
	<description>Le SQL pour SQL Server, PostGreSQL et tous les autres SGBDR</description>
	<lastBuildDate>Thu, 15 Oct 2020 12:59:17 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Ajout du niveau dans un arbre intervallaire</title>
		<link>https://blog.developpez.com/sqlpro/p11924/langage-sql-norme/ajout-du-niveau-dans-un-arbre-intervallaire</link>
		<comments>https://blog.developpez.com/sqlpro/p11924/langage-sql-norme/ajout-du-niveau-dans-un-arbre-intervallaire#comments</comments>
		<pubDate>Wed, 17 Apr 2013 16:36:53 +0000</pubDate>
		<dc:creator><![CDATA[SQLpro]]></dc:creator>
				<category><![CDATA[bases de données]]></category>
		<category><![CDATA[Langage SQL (norme)]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[SQL Server 2000]]></category>
		<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[arborescence]]></category>
		<category><![CDATA[arbre]]></category>
		<category><![CDATA[intervallaire]]></category>
		<category><![CDATA[intervalle]]></category>
		<category><![CDATA[niveau]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/sqlpro/?p=281</guid>
		<description><![CDATA[Voici comment ajouter le niveau des éléments dans un arbre modélisé par intervalles. Pour notre test, la table est la suivante : CREATE TABLE T_VEHICULE_VHC (VHC_ID &#160; &#160; &#160; &#160; INTEGER NOT NULL PRIMARY KEY, &#160;VHC_BG &#160; &#160; &#160; &#160; INTEGER, &#160;VHC_BD &#160; &#160; &#160; &#160; INTEGER, &#160;VHC_NOM &#160; &#160; &#160; &#160;VARCHAR(16)); Les données que [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Voici comment ajouter le niveau des éléments dans un arbre modélisé par intervalles.<br />
<span id="more-281"></span><br />
Pour notre test, la table est la suivante :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CREATE TABLE T_VEHICULE_VHC<br />
(VHC_ID &nbsp; &nbsp; &nbsp; &nbsp; INTEGER NOT NULL PRIMARY KEY,<br />
&nbsp;VHC_BG &nbsp; &nbsp; &nbsp; &nbsp; INTEGER,<br />
&nbsp;VHC_BD &nbsp; &nbsp; &nbsp; &nbsp; INTEGER,<br />
&nbsp;VHC_NOM &nbsp; &nbsp; &nbsp; &nbsp;VARCHAR(16));</div></div>
<p>Les données que l&rsquo;on y insère sont les suivantes :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">INSERT INTO T_VEHICULE_VHC VALUES (1, 1, 26, 'ALL');<br />
INSERT INTO T_VEHICULE_VHC VALUES (2, 2, 7, 'SEA');<br />
INSERT INTO T_VEHICULE_VHC VALUES (3, 8, 19, 'EARTH');<br />
INSERT INTO T_VEHICULE_VHC VALUES (4, 20, 25, 'AIR');<br />
INSERT INTO T_VEHICULE_VHC VALUES (5, 3, 4, 'SUBMARINE');<br />
INSERT INTO T_VEHICULE_VHC VALUES (6, 5, 6, 'BOAT');<br />
INSERT INTO T_VEHICULE_VHC VALUES (7, 9, 10, 'CAR');<br />
INSERT INTO T_VEHICULE_VHC VALUES (8, 11, 16, 'TWO WHEELS');<br />
INSERT INTO T_VEHICULE_VHC VALUES (9, 17, 18, 'TRUCK');<br />
INSERT INTO T_VEHICULE_VHC VALUES (10, 21, 22, 'ROCKET');<br />
INSERT INTO T_VEHICULE_VHC VALUES (11, 23, 24, 'PLANE');<br />
INSERT INTO T_VEHICULE_VHC VALUES (12, 12, 13, 'MOTORCYCLE');<br />
INSERT INTO T_VEHICULE_VHC VALUES (13, 14, 15, 'BICYCLE');;</div></div>
<p>Que l&rsquo;on peut présenter ainsi :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">VHC_NOM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;VHC_ID &nbsp; &nbsp; &nbsp;VHC_NIVEAU &nbsp;VHC_PATH<br />
------------------ ----------- ----------- --------------------------------<br />
ALL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp;AIR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AIR<br />
&nbsp; PLANE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;11 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AIR, PLANE<br />
&nbsp; ROCKET &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AIR, ROCKET<br />
&nbsp;EARTH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EARTH<br />
&nbsp; CAR &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EARTH, CAR<br />
&nbsp; TRUCK &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;9 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EARTH, TRUCK<br />
&nbsp; TWO WHEELS &nbsp; &nbsp; &nbsp; 8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EARTH, TWO WHEELS<br />
&nbsp; &nbsp;BICYCLE &nbsp; &nbsp; &nbsp; &nbsp; 13 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EARTH, TWO WHEELS, BICYCLE<br />
&nbsp; &nbsp;MOTORCYCLE &nbsp; &nbsp; &nbsp;12 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; EARTH, TWO WHEELS, MOTORCYCLE<br />
&nbsp;SEA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SEA<br />
&nbsp; BOAT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 6 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SEA, BOAT<br />
&nbsp; SUBMARINE &nbsp; &nbsp; &nbsp; &nbsp;5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SEA, SUBMARINE</div></div>
<p>Le calcul du niveau peut se faire par la requête :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SELECT VHC_ID, <br />
&nbsp; &nbsp; &nbsp; &nbsp;(SELECT COUNT(*) <br />
&nbsp; &nbsp; &nbsp; &nbsp; FROM &nbsp; T_VEHICULE_VHC <br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE &nbsp;VHC_BG &nbsp;REF.VHC_BD) AS VHC_NIVEAU,<br />
&nbsp; &nbsp; &nbsp; &nbsp;VHC_NOM <br />
FROM &nbsp; T_VEHICULE_VHC AS REF;</div></div>
<p>En fait il s&rsquo;agit de compter le nombre de parents d&rsquo;un nœud.</p>
<p>Pour rajouter le calcul du niveau en dur dans la table, on peut faire comme ceci :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ALTER TABLE T_VEHICULE_VHC ADD VHC_NIVEAU SMALLINT;</div></div>
<p>Ce qui rajoute la colonne niveau dans la table.</p>
<p>Il faut maintenant la mettre à jour :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">UPDATE REF<br />
SET &nbsp; &nbsp;VHC_NIVEAU = (SELECT COUNT(*) <br />
&nbsp; &nbsp; &nbsp; &nbsp; FROM &nbsp; T_VEHICULE_VHC <br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE &nbsp;VHC_BG &nbsp;REF.VHC_BD)<br />
FROM &nbsp; T_VEHICULE_VHC AS REF;</div></div>
<p><strong>Le site web sur le </strong><a href="http://sqlpro.developpez.com/">SQL et les SGBDR</a><br />
<img src="http://blog.developpez.com/media/Microsoft_MVP_logo_vertical Brouard 400.jpg" width="400" height="135" alt="MVP Microsoft SQL Server" /></p>
<pre>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES<br />
Expert &nbsp;S.G.B.D &nbsp;relationnelles &nbsp; et &nbsp; langage &nbsp;S.Q.L<br />
Moste &nbsp;Valuable &nbsp;Professionnal &nbsp;Microsoft &nbsp;SQL Server<br />
Société SQLspot &nbsp;: &nbsp;modélisation, conseil, formation,<br />
optimisation, &nbsp;audit, &nbsp;tuning, &nbsp;administration &nbsp;SGBDR<br />
Enseignant: CNAM PACA, ISEN Toulon, CESI Aix en Prov.</div></div>

</pre>
<p>L&rsquo;ntreprise <a href="http://www.sqlspot.com">SQL Spot</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
