Ir al contenido principal

Dialects

Cada constructor y método de extensión requiere una instancia de ISqlDialect. Selecciona el que corresponda a tu motor de base de datos.

CaracterísticaSqlServerDialectPostgreSqlDialectMySqlDialectSqliteDialectOracleDialect
Prefijo de parámetro@@@@:
Comillas de columna[col]"col"`col`"col""col"
Comillas de tabla[tbl]"tbl"`tbl`"tbl""tbl"
LIKE sin distinción de mayúsculasLOWER([col]) LIKE LOWER(@p)"col" ILIKE @pLOWER(`col`) LIKE LOWER(@p)LOWER("col") LIKE LOWER(@p)LOWER("col") LIKE LOWER(:p)
TOP / LIMITTOP N (sin OFFSET) / OFFSET … ROWS FETCH NEXT N ROWS ONLYLIMIT N OFFSET MLIMIT N OFFSET MLIMIT N OFFSET MFETCH FIRST N ROWS ONLY
Soporte TRUNCATENo (lanza excepción)
Soporte MERGENoNoNoNo
OUTPUT INSERTED/DELETEDNoNoNoNo
Cláusula RETURNINGNoSí (solo INSERT)No
ON CONFLICTNoNoNo
ON DUPLICATE KEYNoNoNoNo
INSERT OR IGNORE/REPLACENoNoNoNo
FOR UPDATE / FOR SHARENo (usa WithHint)No (ignorado silenciosamente)
NULLS FIRST/LASTNo (ignorado silenciosamente)No
Palabra clave CTE recursiva(omitida)RECURSIVERECURSIVERECURSIVE(omitida)
UPDATE … FROM/JOINSí (FROM después de SET)Sí (FROM después de SET)Sí (JOIN antes de SET)NoNo
IS DISTINCT FROMEmuladoNativoEmuladoNativoEmulado
Extracción de parte de fechaDATEPART(part, col)EXTRACT(part FROM col)EXTRACT(part FROM col)strftime('%Y', col)EXTRACT(part FROM col)
Timestamp actualGETDATE()NOW()NOW()CURRENT_TIMESTAMPSYSDATE
Longitud de cadenaLEN(col)LENGTH(col)LENGTH(col)LENGTH(col)LENGTH(col)
Concatenación de cadenasa + ba || bCONCAT(a, b)a || ba || b
Recorte de espaciosLTRIM(RTRIM(col))TRIM(col)TRIM(col)TRIM(col)TRIM(col)

Uso

ISqlDialect dialect = new SqlServerDialect();
ISqlDialect dialect = new PostgreSqlDialect();
ISqlDialect dialect = new MySqlDialect();
ISqlDialect dialect = new SqliteDialect();
ISqlDialect dialect = new OracleDialect();