Preguntar sobre el resultado de una función

04/10/2006 - 23:02 por Federico Ezequiel | Informe spam
Hola:

Hace poco que comencé con SQL Server. Estoy bastante acostumbrado a
programar en Visual Basic.
Estoy probando la función EXISTS, aunque se puede aplicar sobre cualquier
función supongo y la idea es preguntar si EXISTS devuelve un TRUE o un
FALSE, pero evidentemente estoy haciendo algo mal porque obtengo un error.
Lo que hago se parece a ésto:

if EXISTS (select * from MITABLA where Col1 = 10) = True
Begin
Select 'Existe' AS RESPUESTA
End


Sé que si ejecuto la misma instrucción sin = True, lo que se está
preguntando es si es verdadera y si es así se hace lo que va luego de BEGIN,
pero me perturba un poco no poder preguntar qué está devolviendo la función
y actuar en consecuencia.
Muchas gracias.

Federico

Preguntas similare

Leer las respuestas

#1 Dany Acosta
04/10/2006 - 23:52 | Informe spam
Tienes usarlo asi


if EXISTS (select * from MITABLA where Col1 = 10)
Begin
Select 'Existe' AS RESPUESTA
End





Sé que si ejecuto la misma instrucción sin = True, lo que se está
preguntando es si es verdadera y si es así se hace lo que va luego de BEGIN,
pero me perturba un poco no poder preguntar qué está devolviendo la función
y actuar en consecuencia.
Muchas gracias.

Federico


Respuesta Responder a este mensaje
#2 César Duarte
05/10/2006 - 19:06 | Informe spam
Hola,

Mira para lo que quieres hacer te recomiendo que mejor utilices una
función count, de esta forma:

if (SELECT COUNT (*) FROM MITABLA where Col1 = 10) > 1
Begin
Select 'Existe' AS RESPUESTA
End

Evidentemente preferirías hacer un count sobre solo la llave de la
tabla. Me parece que es mucho más eficiente que utilizar un exists. En
buena teoría puedes interpretar ese 1 como un true y si es menor que 1
como un false.

Saludos,

César Duarte
Microsoft Certified Professional
Microsoft Student Partner
SoftechCR.NET Lead
Visit me @ cfdmo.blogspot.com
www.softechcr.net
Respuesta Responder a este mensaje
#3 Federico Ezequiel
05/10/2006 - 19:57 | Informe spam
Muchas gracias César.
Mi duda está relacionada con el modo de preguntar por el valor que devuelve
una función. Utilicé la función EXISTS sólo como una excusa para formular mi
pregunta.
Un saludo cordial.

Federico

"César Duarte" escribió en el mensaje
news:
Hola,

Mira para lo que quieres hacer te recomiendo que mejor utilices una
función count, de esta forma:

if (SELECT COUNT (*) FROM MITABLA where Col1 = 10) > 1
Begin
Select 'Existe' AS RESPUESTA
End

Evidentemente preferirías hacer un count sobre solo la llave de la
tabla. Me parece que es mucho más eficiente que utilizar un exists. En
buena teoría puedes interpretar ese 1 como un true y si es menor que 1
como un false.

Saludos,

César Duarte
Microsoft Certified Professional
Microsoft Student Partner
SoftechCR.NET Lead
Visit me @ cfdmo.blogspot.com
www.softechcr.net
Respuesta Responder a este mensaje
#4 César Duarte Mora
11/10/2006 - 09:40 | Informe spam
Hola,

Ejecuta el SQL mediante un ExecuteScalar y luego convierte tu resultado a un
Boolean por medio de un CType.

Saludos,

MCP César Duarte Mora
Consultor de Inteligencia de Negocios
Microsoft Student Partner, Costa Rica
SoftechCR.NET Lead
Blog: cfdmo.blogspot.com

"Federico Ezequiel" wrote in message
news:
Muchas gracias César.
Mi duda está relacionada con el modo de preguntar por el valor que
devuelve una función. Utilicé la función EXISTS sólo como una excusa para
formular mi pregunta.
Un saludo cordial.

Federico

"César Duarte" escribió en el mensaje
news:
Hola,

Mira para lo que quieres hacer te recomiendo que mejor utilices una
función count, de esta forma:

if (SELECT COUNT (*) FROM MITABLA where Col1 = 10) > 1
Begin
Select 'Existe' AS RESPUESTA
End

Evidentemente preferirías hacer un count sobre solo la llave de la
tabla. Me parece que es mucho más eficiente que utilizar un exists. En
buena teoría puedes interpretar ese 1 como un true y si es menor que 1
como un false.

Saludos,

César Duarte
Microsoft Certified Professional
Microsoft Student Partner
SoftechCR.NET Lead
Visit me @ cfdmo.blogspot.com
www.softechcr.net


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida