Noticias Weblogs Foros Wiki Código

RecorteX

» SQL
326 usuarios y 203 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta SQL

RSS
Recortes: 15

Etiquetas relacionadas:
Sqlserver
tabla
existe
procedimientos
datos
PHP
exist
case
sp
jdbc
dentro
table
plsql
columna
libre
duplicados
almacenados
texto
groupby
concatenar
stored
Oracle
eliminar
base
where
procedures
ID
database
sysobjects
passwords
encriptacion
buscar
registros
java

Case dentro del where

Que cosa tan rara! un CASE dentro de un WHERE! pero si es posible y yo lo tuve que utilizar una vez. Espero que esto les resuelva la vida un poco.
 
 SELECT * 
 FROM tabla_s WHERE
 columna = case 
  when condicion then consecuencia 
  [when condicion then consecuencia]*
  [else consecuencia]* end
 

Encontrar un objeto en nuestra base de datos

Muchas veces nos podemos perder en una base de datos muy grande, y al intentar buscar perdemos mas el tiempo haciendolo en el Enteprise manager. Creo que sera mas facil ejecutar este query y segun los resultados encontraremos lo que buscabamos. Exito!
 
 SELECT name FROM sysobjects WHERE name LIKE '%loquebuscamos%'
 

Determinar los atributos derivados en una tabla de sql server

 
  SELECT b.name AS tabla, a.name AS columna
           FROM syscolumns a INNER JOIN sysobjects b
           ON a.id=b.id
           WHERE b.name='nombretabla'
           AND a.iscomputed=1
 

Eliminar registros repetidos

Supongamos que tenemos una tabla con emails, y que algunos pueden estar repetidos, queremos hacer un "borrado selectivo" y eliminar solo las repeticiones.
 
DELETE FROM t_table WHERE id IN (SELECT id FROM t_table main WHERE id > (SELECT min(id) FROM t_table WHERE id <> main.id AND Email = main.Email))
 

Llamar a un procedimiento almacenado

Aquí hay un ejemplo que trata prácticamente todos los casos en la ejecución de un procedimiento almacenado usando JDBC: parámetros de entrada y salida, retorno de resultados, etc.
 
package DBTest;
 
import java.sql.*;
 
public class JdbcTest {
 
    private String          msDbUrl = "jdbc:odbc:ms";
    private String          msJdbcClass = "sun.jdbc.odbc.JdbcOdbcDriver";
    private Connection      mcDbAccess;
    private CallableStatement       msProcedure;
 
    public JdbcTest() {
        try {
            Class.forName( msDbUrl ).newInstance();
            mcDbAccess = DriverManager.getConnection( msJdbcClass, "milestone", "milestone" );
            msProcedure = mcDbAccess.prepareCall(
                "{? = call sp_sav_Bom_Header( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) }"
            );
            msProcedure.registerOutParameter( 1, java.sql.Types.VARCHAR );
            msProcedure.setInt( 2, -1 );
            msProcedure.setInt( 3, 39 );
            msProcedure.setString( 4, "format" );
            long ltTest = new java.util.Date().getTime();
            System.out.println( "Today: " + ltTest );
            msProcedure.setTimestamp( 5, new Timestamp( ltTest ) );
            msProcedure.setString( 6, "type" );
            msProcedure.setString( 7, "submitter" );
            msProcedure.setString( 8, "email" );
            msProcedure.setString( 9, "phone" );
            msProcedure.setString( 10, "comments" );
            msProcedure.setString( 11, "label" );
            msProcedure.setInt( 12, 52 );
            msProcedure.setBoolean( 13, true );
            msProcedure.setBoolean( 14, false );
            msProcedure.setInt( 15, 53 );
            msProcedure.setString( 16, "runtime" );
            msProcedure.setString( 17, "configuration" );
            msProcedure.setBoolean( 18, true );
            msProcedure.setBoolean( 19, false );
            msProcedure.setString( 20, "special instructions" );
            msProcedure.setInt( 21, 54 );
 
            ResultSet lrsReturn = null;
            System.out.println( "Execute: " + (lrsReturn = msProcedure.executeQuery() ) );
            while( lrsReturn.next() ) {
                System.out.println( "Got from result set: " + lrsReturn.getInt( 1 ) );
            }
            System.out.println( "Got from stored procedure: " + msProcedure.getString( 1 ) );
        } catch( Throwable e ) {
            e.printStackTrace();
        }
    }
 
    public static void main(String[] args) {
        new JdbcTest();
    }
}
 
info@recortex.com - Proyecto: Juanjo Navarro, 2006 - Diseño: Albin