{"id":2781,"date":"2023-04-07T19:03:14","date_gmt":"2023-04-07T19:03:14","guid":{"rendered":"https:\/\/manualsqlserver.com\/?p=2781"},"modified":"2023-12-08T21:27:12","modified_gmt":"2023-12-08T21:27:12","slug":"case-joins-y-la-funcion-iif","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=2781","title":{"rendered":"Case, Joins y la funci\u00f3n IIF"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins__D.png\"><img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"315\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins__D.png\" alt=\"\" class=\"wp-image-2782\" style=\"width:198px;height:250px\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins__D.png 250w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins__D-238x300.png 238w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-larger-font-size\"><strong>Estructura Case comparada con Join<\/strong><\/h2>\n\n\n\n<p>La estructura Case evalua una expresi\u00f3n condicional y retorna uno de m\u00faltiples resultados.<\/p>\n\n\n\n<p><strong>La estructura Case tiene dos formas (Ver<a href=\"https:\/\/manualsqlserver.com\/?p=1482\" target=\"_blank\" rel=\"noreferrer noopener\"> Case en SQL Server<\/a>)<\/strong><\/p>\n\n\n\n<!--more-->\n\n\n\n<ol class=\"wp-block-list\">\n<li>La expresi\u00f3n CASE simple compara una expresi\u00f3n con un conjunto de expresiones simples para determinar el resultado.<br>CASE Expresi\u00f3nAEvaluar<br>WHEN Resultado1 THEN Retorno1 [ \u2026n ]<br>[ ELSE Expresi\u00f3n ]<br>END<\/li>\n\n\n\n<li>La expresi\u00f3n CASE buscada eval\u00faa un conjunto de expresiones booleanas para determinar el resultado.<br>CASE<br>WHEN Expresi\u00f3nCondicional THEN Resultado1 [ \u2026n ]<br>[ ELSE Expresi\u00f3n ]<br>END<br>Ambos formatos admiten un argumento ELSE opcional.<\/li>\n<\/ol>\n\n\n\n<p>Importante:<br>CASE se puede usar en cualquier declaraci\u00f3n o cl\u00e1usula que permita una expresi\u00f3n v\u00e1lida.<br>La estructura CASE se puede usar en SELECT, UPDATE, DELETE y SET.<br>Tambi\u00e9n se puede usar en la lista de campos de la instrucci\u00f3n Select y en las expresiones con el operador IN (Ver <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=172\" target=\"_blank\">Operadores en SQL Server<\/a>) y las cl\u00e1usulas WHERE (Ver <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=201\" target=\"_blank\">Filtrado de datos<\/a>), ORDER BY (Ver <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=211\" target=\"_blank\">Ordenamientos<\/a>) y HAVING (Ver <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=225\" target=\"_blank\">Filtros Having<\/a>).<\/p>\n\n\n\n<p><strong>En este art\u00edculo vamos a comparar el uso de Case con un Join, es necesario resaltar que si las opciones posibles del Case cambian, es necesario reescribir la consulta. En un ejercicio se escribe la consulta usando en lugar de Case la funci\u00f3n IIF.<\/strong><\/p>\n\n\n\n<p><strong>Usando la base de datos Northwind<br><\/strong>use Northwind<br>go<\/p>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p class=\"has-larger-font-size\"><strong>Ejercicio 1<\/strong><\/p>\n\n\n\n<p>Usando Case para la lista de productos y los nombres de las categorias<\/p>\n\n\n\n<pre class=\"wp-block-code has-regular-font-size\"><code>select P.ProductID as 'C\u00f3digo', P.ProductName as 'Descripci\u00f3n',\n\tCase CategoryID \n\t\tWhen 1 then 'Bebidas' \n\t\tWhen 2 then 'Condimentos' \n\t\tWhen 3 then 'Confecciones' \n\t\tWhen 4 then 'Productos diarios' \n\t\tWhen 5 then 'Cereales' \n\t\tWhen 6 then 'Carnes' \n\t\tWhen 7 then 'Conservas' \n\t\tWhen 8 then 'Productos marinos'  End As Categor\u00eda\n\tfrom dbo.Products As P\ngo<\/code><\/pre>\n\n\n\n<p>El costo estimado de la consulta usando Case se puede ver en la siguiente imagen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"554\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_01.png\" alt=\"\" class=\"wp-image-2783\" style=\"width:567px;height:554px\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_01.png 567w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_01-300x293.png 300w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/a><\/figure>\n\n\n\n<p>Costo: <strong>0.0033744<\/strong><\/p>\n\n\n\n<p>Usando Join para listar los productos y su categor\u00eda (Ver <a rel=\"noreferrer noopener\" href=\"https:\/\/manualsqlserver.com\/?p=215\" target=\"_blank\">Joins<\/a>)<\/p>\n\n\n\n<pre class=\"wp-block-code has-regular-font-size\"><code>Select P.ProductID as 'C\u00f3digo', P.ProductName as 'Descripci\u00f3n',\n\t C.CategoryName AS Categor\u00eda\n\tfrom Products As P\n\tjoin dbo.Categories As C on P.CategoryID = C.CategoryID\ngo<\/code><\/pre>\n\n\n\n<p>El costo estimado de la consulta usando Joins se puede ver en la siguiente imagen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_02.png\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"398\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_02.png\" alt=\"\" class=\"wp-image-2784\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_02.png 550w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_02-300x217.png 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/figure>\n\n\n\n<p><br>Costo: <strong>0.0189873<\/strong><\/p>\n\n\n\n<p><strong>Conclusi\u00f3n<\/strong><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background has-large-font-size\"><strong>Si comparamos los valores, Case en este caso es es mas r\u00e1pido, al usar Join la consulta tiene un costo de 5,63 veces mayor, es necesario  anotar nuevamente que si las categor\u00edas cambian, la consulta usando Case es necesario reescribirla.<\/strong><\/p>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p class=\"has-larger-font-size\"><strong>Ejercicio 2<\/strong><\/p>\n\n\n\n<p><strong>Usando las tablas Region y Terrotories con Case<\/strong><br><\/p>\n\n\n\n<pre class=\"wp-block-code has-regular-font-size\"><code>select T.TerritoryID As 'C\u00f3digo', T.TerritoryDescription As 'Territorio',\n\tRegion = case T.RegionID\n\t\t\t\tWhen 1 then 'Este' \n\t\t\t\tWhen 2 then 'Oeste' \n\t\t\t\tWhen 3 then 'Norte' \n\t\t\t\tWhen 4 then 'Sur' End\n\tfrom dbo.Territories As T\ngo<\/code><\/pre>\n\n\n\n<p>El plan de ejecuci\u00f3n se muestra en la siguiente imagen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_03.png\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"456\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_03.png\" alt=\"\" class=\"wp-image-2785\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_03.png 510w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_03-300x268.png 300w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n\n\n\n<p>Costo de la consulta: <strong>0.0033456<\/strong><\/p>\n\n\n\n<p>Usando Join para listar los territorios y las regiones a las que pertenecen<\/p>\n\n\n\n<pre class=\"wp-block-code has-regular-font-size\"><code>Select T.TerritoryID as 'C\u00f3digo', T.TerritoryDescription as 'Territorio',\n\t R.RegionDescription AS 'Regi\u00f3n'\n\tfrom dbo.Territories As T\n\tjoin dbo.Region As R on T.RegionID = R.RegionID\ngo<\/code><\/pre>\n\n\n\n<p>El plan de ejecuci\u00f3n se muestra en la siguiente imagen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_04.png\"><img loading=\"lazy\" decoding=\"async\" width=\"440\" height=\"398\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_04.png\" alt=\"\" class=\"wp-image-2786\" style=\"width:440px;height:398px\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_04.png 440w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_04-300x271.png 300w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/a><\/figure>\n\n\n\n<p>Costo de la consulta: <strong>0.0248898<\/strong><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background has-large-font-size\">Conclusi\u00f3n<br><strong>Si comparamos los valores, Case en este caso es es mas r\u00e1pido, al usar Join la consulta tiene un costo de 7,44 veces mayor, es necesario anotar nuevamente que si las regiones cambian, la consulta usando Case es necesario reescribirla.<\/strong><\/p>\n\n\n\n<script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2636008503986218\"\n     data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p class=\"has-larger-font-size\"><strong>Ejercicio 3<\/strong><\/p>\n\n\n\n<p>Listado de las \u00f3rdenes de agosto de 1997, incluir el nombre de las empresas de env\u00edo (Shippers).<\/p>\n\n\n\n<p>Listado de las empresas de env\u00edo<br>select * from dbo.Shippers<br>go<br>Las empresas de env\u00edo son:<br>1 Speedy Express (503) 555-9831<br>2 United Package (503) 555-3199<br>3 Federal Shipping (503) 555-9931<\/p>\n\n\n\n<pre class=\"wp-block-code has-regular-font-size\"><code>select \n\tO.OrderID As 'N\u00ba Orden', \n\tFormat(O.OrderDate,'dd\/MM\/yyyy') As 'Fecha',\n\tCourier = case O.ShipVia\n\t\t\t\tWhen 1 then 'Speedy Express' \n\t\t\t\tWhen 2 then 'United Package' \n\t\t\t\tWhen 3 then 'Federal Shipping' \n\t\t\t\tEnd\n\tfrom dbo.Orders As O\n\twhere Year(O.OrderDate) = 1997 and MONTH(O.OrderDate) = 8\ngo<\/code><\/pre>\n\n\n\n<p>El plan de ejecuci\u00f3n se muestra en la siguiente imagen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_05.png\"><img loading=\"lazy\" decoding=\"async\" width=\"854\" height=\"546\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_05.png\" alt=\"\" class=\"wp-image-2787\" style=\"width:840px;height:537px\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_05.png 854w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_05-300x192.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_05-768x491.png 768w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_05-795x508.png 795w\" sizes=\"auto, (max-width: 854px) 100vw, 854px\" \/><\/a><\/figure>\n\n\n\n<p>Costo de la consulta: <strong>0.0183521<\/strong><\/p>\n\n\n\n<p>El mismo listado usando Joins<\/p>\n\n\n\n<pre class=\"wp-block-code has-regular-font-size\"><code>select \n\tO.OrderID As 'N\u00ba Orden', \n\tFormat(O.OrderDate,'dd\/MM\/yyyy') As 'Fecha',\n\tS.CompanyName As 'Courier'\n\tfrom dbo.Orders As O\n\tjoin dbo.Shippers As S on O.ShipVia = S.ShipperID\n\twhere Year(O.OrderDate) = 1997 and MONTH(O.OrderDate) = 8\ngo<\/code><\/pre>\n\n\n\n<p>El plan de ejecuci\u00f3n se muestra en la siguiente imagen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_06.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_06-1024x538.png\" alt=\"\" class=\"wp-image-2788\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_06-1024x538.png 1024w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_06-300x158.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_06-768x404.png 768w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_06-795x418.png 795w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_06.png 1122w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Costo de la consulta: <strong>0.0300915<\/strong><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background has-large-font-size\"><strong>Conclusi\u00f3n<br>Si comparamos los valores, Case en este caso es es mas r\u00e1pido, al usar Join la consulta tiene un costo de 1,6 veces mayor, es necesario anotar nuevamente que si las empresas de env\u00edo cambian, la consulta usando Case es necesario reescribirla.<\/strong><\/p>\n\n\n\n<p class=\"has-larger-font-size\"><strong>Ejercicio 4<\/strong><\/p>\n\n\n\n<p class=\"has-vivid-cyan-blue-color has-text-color has-larger-font-size\"><strong>Case y la funci\u00f3n IIF<\/strong><\/p>\n\n\n\n<p>Listado de los empleados y la cantidad de \u00f3rdenes generadas, si la cantidad de \u00f3rdenes es mayor a 100  el empleado ha cumplido la meta, aparece \u00abMeta cumplida\u00bb, si la cantidad est\u00e1 entre 50 y 100, est\u00e1 en proceso por lo tanto se muestra el mensaje \u00abEn Proceso\u00bb y si es menor de 50 es necesario un plan de mejora, mostraremos el mensaje \u00abPlan de mejora\u00bb. Usaremos Case para una consulta y para la otra el uso de la funci\u00f3n IIF.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>select\n\tE.EmployeeID,\n\tCONCAT_WS(space(1),E.TitleOfCourtesy, E.FirstName, E.LastName) As 'Empleado',\n\tCOUNT(O.OrderID) As 'Cantidad de \u00d3rdenes',\n\tCase \n\t\twhen COUNT(O.OrderID)&gt;100 then 'Meta cumplida' \n\t\twhen (COUNT(O.OrderID)&lt;=100 and COUNT(O.OrderID)&gt;=80) then 'En proceso'\n\t\telse 'Plan de mejora'\n\tEnd\n\t\tAs 'Resultado'\n\tfrom dbo.Employees As E\n\tjoin dbo.Orders As O on E.EmployeeID = O.EmployeeID\n\tgroup by \n\tE.EmployeeID,\n\tCONCAT_WS(space(1),E.TitleOfCourtesy, E.FirstName, E.LastName) \ngo<\/code><\/pre>\n\n\n\n<p><strong>Usando la funci\u00f3n IIF<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>select\n\tE.EmployeeID,\n\tCONCAT_WS(space(1),E.TitleOfCourtesy, E.FirstName, E.LastName) As 'Empleado',\n\tCOUNT(O.OrderID) As 'Cantidad de \u00d3rdenes',\n\tiif(COUNT(O.OrderID)&gt;100, 'Meta cumplida', \n\t\tiif(COUNT(O.OrderID)&lt;=100 and COUNT(O.OrderID)&gt;=80, 'En proceso','Plan de mejora'))\n\t\tAs 'Resultado'\n\tfrom dbo.Employees As E\n\tjoin dbo.Orders As O on E.EmployeeID = O.EmployeeID\n\tgroup by \n\tE.EmployeeID,\n\tCONCAT_WS(space(1),E.TitleOfCourtesy, E.FirstName, E.LastName) \ngo<\/code><\/pre>\n\n\n\n<p>El resultado de la consulta es el mismo y el plan de ejecuci\u00f3n muestra el mismo tiempo de respuesta. La imagen muestra el listado.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_07.png\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"366\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_07.png\" alt=\"\" class=\"wp-image-2789\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_07.png 705w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2023\/04\/ManualSQLServer_CaseVsJoins_07-300x156.png 300w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Estructura Case comparada con Join La estructura Case evalua una expresi\u00f3n condicional y retorna uno de m\u00faltiples resultados. La estructura Case tiene dos formas (Ver Case en SQL Server)<\/p><p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=2781\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":2782,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,8],"tags":[154,296,40],"class_list":["post-2781","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-consultasdedatos","category-programacion","tag-case","tag-iif","tag-join","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/2781","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2781"}],"version-history":[{"count":2,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/2781\/revisions"}],"predecessor-version":[{"id":2862,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/2781\/revisions\/2862"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/2782"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}