En Oracle existe la funcion DECODE que permite evaluar un valor para seleccionar otro.
select decode(v_mes, 1, 'Enero', 2, 'Febrero', 'Otro')
into v_valor
from dual
En SQL Server, el simil se hace con un CASE, asi:
select @v_valor = case @v_mes
when 1 then 'Enero'
when 2 then 'Febrero'
else 'Otro'
end;
viernes, 27 de noviembre de 2009
El DECODE en SQL Server
Publicadas por
Tito
a las
15:34
0
comentarios
Etiquetas: Oracle, Soluciones, SQL Server
jueves, 26 de noviembre de 2009
Cambio de nombres de tablas y columnas en SQL Server
Para hacer un cambio de nombre de tabla en SQL Server hay que hacerlo con el sgte. script:
sp_rename 'nombreAntiguoDeLaTabla', 'nombreNuevoDeLaTabla'
Para hacer un cambio de nombre de campo en SQL Server hay que hacerlo con el sgte. script:
sp_rename 'nombreDeLaTabla.nombreAntiguoDelCampo', 'nombreNuevoDelCampo','COLUMN'
Publicadas por
Tito
a las
20:26
0
comentarios
Etiquetas: Soluciones, SQL Server
viernes, 20 de noviembre de 2009
Problemas de idiomas en SQL Server
Haciendo una migración en bases de datos MS SQL Server me encontré con que una de las tablas tenía la definición de un campo en un idioma diferente por lo que al hacer la sgte. consulta:
select c1.idciudad, c2.cd_comuname arrojaba el sgte. error:
from db_SNP_RNASQL.dbo.__comuna c1
,db_SNP_RNASQL.dbo.tb_comuna c2
where c1.comuna = c2.nm_comuna
order by 2
No se puede resolver el conflicto de intercalación entre "Modern_Spanish_CI_AS" y "Traditional_Spanish_CI_AS" de la operación equal to.
La solución fue aplicar una especie de traductor de estas columnas quedando la consulta así:
select c1.idciudad, c2.cd_comuna
from db_SNP_RNASQL.dbo.__comuna c1
,db_SNP_RNASQL.dbo.tb_comuna c2
where c1.comuna COLLATE Modern_Spanish_CI_AS =
c2.nm_comuna COLLATE Modern_Spanish_CI_AS
order by 2
La fuente de este conocimiento en capitalfederal.com
Publicadas por
Tito
a las
17:14
0
comentarios
Etiquetas: Soluciones, SQL Server
miércoles, 18 de noviembre de 2009
Identity
En una migración de MS SQL Server me encontré con algunas tablas que tienen PK con un identity por lo que es necesario bloquear esta propiedad antes de hacer un insert masivo con PK definidos con anterioridad. Para ello es necesario ejecutar el script con las siguientes instrucciones:
Posterior a este insert masivo, el campo con identity quedará seteado para ser insertado con el valor que viene a continuación de acuerdo con el mayor valor ingresado y el incremento definido para el identity.
--saca identity de la tabla
set identity_insert sifaComuna on
insert into sifaComuna
(idComuna
,idRegion
,nombreComuna)
select cd_comuna
,cd_region
,nm_comuna
from db_SNP_RNASQL.dbo.tb_comuna
--vuelve a poner identity en la tabla
set identity_insert sifaComuna off
perdí la URL desde donde saqué esto.
Publicadas por
Tito
a las
17:30
2
comentarios
Etiquetas: Soluciones, SQL Server
miércoles, 4 de noviembre de 2009
Los goles del Chupete
Los goles de Humberto Suazo en las eliminatorias del mundial de Sudáfrica 2010
Publicadas por
Tito
a las
13:28
0
comentarios
Etiquetas: Deportes