{"id":1476,"date":"2020-05-21T22:26:18","date_gmt":"2020-05-21T22:26:18","guid":{"rendered":"http:\/\/manualsqlserver.com\/?p=1476"},"modified":"2020-05-21T22:26:19","modified_gmt":"2020-05-21T22:26:19","slug":"estructura-if-en-sql-server","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=1476","title":{"rendered":"Estructura If en SQL Server"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"220\" height=\"257\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_EstructuraIf__D.png\" alt=\"\" class=\"wp-image-1477\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Estructura If en SQL Server<\/h2>\n\n\n\n<p>Al igual que los lenguajes de programaci\u00f3n la estructura If permitir\u00e1 evaluar una o mas condiciones y si el resultado final es verdadero se ejecutan un bloque de instrucciones, si el resultado final es falso se pueden ejecutar de manera opcional otro bloque de instrucciones.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p style=\"font-size:22px\"><strong>Sintaxis<\/strong><\/p>\n\n\n\n<p>If<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es verdadera<br>[<br>Else<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es Falsa<br>]<\/p>\n\n\n\n<p><strong>Notas importantes<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Es conveniente definir el bloque de instrucciones de cualquiera de los resultados de la expresi\u00f3n l\u00f3gica entre las instrucciones Begin y End<\/li><li>Se puede usar la estructura IF de varias formas, simple, doble e inclusive If anidados. La sintaxis para estos casos puede cambiar.<\/li><\/ul>\n\n\n\n<p style=\"font-size:22px\"><strong>If Simple<\/strong><\/p>\n\n\n\n<p>If<br>Begin<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es verdadera<br>End<\/p>\n\n\n\n<p style=\"font-size:22px\"><strong>Doble<\/strong><\/p>\n\n\n\n<p>If<br>Begin<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es verdadera<br>End<br>Else<br>Begin<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es Falsa<br>End<\/p>\n\n\n\n<p style=\"font-size:22px\"><strong>Anidados, una estructura If dentro de otra.<\/strong><\/p>\n\n\n\n<p>If<br>Begin<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es verdadera<br>End<br>Else<br>Begin<br><strong>If<br>Begin<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es verdadera<br>End<\/strong><br>Else<br>Begin<br>Bloque de instrucciones cuando la<br>expresi\u00f3n es Falsa<br>End<br>End<\/p>\n\n\n\n<p style=\"font-size:26px\"><strong>Ejemplos<\/strong><\/p>\n\n\n\n<p><strong>Suponiendo que se trabaja de lunes a viernes, la siguiente estructura obtiene el n\u00famero de dia de la semana, si es del 1 al 5 imprime el mensaje \u00abDia Laborable\u00bb del lo contrario \u00abFin de semana\u00bb. Para el ejercicio usaremos DatePart. (<a href=\"https:\/\/manualsqlserver.com\/?p=185\">Ver Funciones de Fecha<\/a>)<\/strong><br>If Datepart(dw, GetDate()) in (1,2,3,4,5)<br>Begin<br>Print &#8216;D\u00eda Laborable&#8217;<br>End<br>Else<br>Begin<br>Print &#8216;Fin de semana&#8217;<br>End<br>go<\/p>\n\n\n\n<p><strong>Crear un script para reportar las estaciones, suponer que los meses de Enero, Febrero y Marzo son Verano, Abril, Mayo y Junio es Oto\u00f1o, Julio, Agosto y Setiembre es Invierno y Octubre, Noviembre y Diciembre es Primavera<\/strong><br>If Datepart(q, GetDate()) in (1)<br>Begin<br>Print &#8216;Verano&#8217;<br>End<br>Else<br>Begin<br>If Datepart(q, GetDate()) in (2)<br>Begin<br>Print &#8216;Oto\u00f1o&#8217;<br>End<br>Else<br>If Datepart(q, GetDate()) in (3)<br>Begin<br>Print &#8216;Inverno&#8217;<br>End<br>Else<br>Begin<br>Print &#8216;Primavera&#8217;<br>End<br>End<br>go<\/p>\n\n\n\n<p>Para crear objetos se pueden usar las vistas de sistema para comprobar si el objeto existe, por ejemplo, listar los \u00edndices de la vista Indexes del esquema sys. <\/p>\n\n\n\n<p><strong>Usando la base de datos Northwind, crear un \u00edndice (Ver \u00edndices) para la tabla Categories en el campo ategoryname, asignar el nombre del \u00edndice CategoriasNombreIDXa, si existe sobre escribirlo.<\/strong><\/p>\n\n\n\n<p>use Northwind<br>go<br>if not exists (select * from sys.indexes where name = &#8216;CategoriasNombreIDXa&#8217;)<br>Begin<br>Create index CategoriasNombreIDXa on Categories(Categoryname)<br>with fillfactor = 70<br>End<br>Else<br>Begin<br>Create index CategoriasNombreIDXa on Categories(Categoryname)<br>with (fillfactor = 70, drop_existing = on)<br>End<br>go<\/p>\n\n\n\n<p><strong>Crear una vista para los clientes (tabla Customers) llamada VistaClientes, si la vista existe, primero se debe eliminar.<\/strong><\/p>\n\n\n\n<p>use Northwind<br>go<br>if exists (select * from sys.views where name = &#8216;VistaClientes&#8217;)<br>Begin<br>Execute(&#8216;Drop view VistaClientes&#8217;)<br>End<br>Execute(&#8216;Create view VistaClientes<br>As<br>Select C.CustomerID As C\u00f3digo, C.CompanyName As Cliente,<br>C.Address As Direcci\u00f3n<br>from Customers As C&#8217;)<\/p>\n\n\n\n<p>go<\/p>\n\n\n\n<p>Visualizar la lista de Clientes con la vista creada<br>select * from VistaClientes<br>go<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_EstructuraIf_01.png\" alt=\"\" class=\"wp-image-1478\" width=\"741\" height=\"546\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_EstructuraIf_01.png 786w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_EstructuraIf_01-300x221.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_EstructuraIf_01-768x567.png 768w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><\/figure><\/div>\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","protected":false},"excerpt":{"rendered":"<p>Estructura If en SQL Server Al igual que los lenguajes de programaci\u00f3n la estructura If permitir\u00e1 evaluar una o mas condiciones y si el resultado final es verdadero se ejecutan un bloque de instrucciones, si el resultado final es falso se pueden ejecutar de manera opcional otro bloque de instrucciones.<\/p><p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=1476\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1477,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[153,152,51],"class_list":["post-1476","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","tag-create","tag-if","tag-select","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1476","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=1476"}],"version-history":[{"count":1,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1476\/revisions"}],"predecessor-version":[{"id":1479,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/1476\/revisions\/1479"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1477"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}