diff --git a/RepoDb.Core/RepoDb.Tests/RepoDb.UnitTests/Extensions/QueryFields/LiteralQuerFieldTest.cs b/RepoDb.Core/RepoDb.Tests/RepoDb.UnitTests/Extensions/QueryFields/LiteralQuerFieldTest.cs
new file mode 100644
index 00000000..efd5c345
--- /dev/null
+++ b/RepoDb.Core/RepoDb.Tests/RepoDb.UnitTests/Extensions/QueryFields/LiteralQuerFieldTest.cs
@@ -0,0 +1,31 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using RepoDb.Extensions.QueryFields;
+
+namespace RepoDb.UnitTests.Extensions.QueryFields
+{
+ [TestClass]
+ public class LiteralQuerFieldTest
+ {
+ [TestMethod]
+ public void TestLiteralQueryFieldConstructor()
+ {
+ // Prepare
+ var literalQueryField = new LiteralQueryField("[Id] BETWEEN 10 AND 100");
+
+ // Assert
+ Assert.AreEqual("fake", literalQueryField.Field.Name);
+ Assert.AreEqual("[Id] BETWEEN 10 AND 100", literalQueryField.Literal);
+ }
+
+ [TestMethod]
+ public void TestLiteralQueryFieldGetString()
+ {
+ // Prepare
+ var literalQueryField = new LiteralQueryField("[Id] BETWEEN 10 AND 100");
+
+ // Assert
+ Assert.AreEqual("[Id] BETWEEN 10 AND 100", literalQueryField.GetString(0, null));
+ }
+ }
+}
+
diff --git a/RepoDb.Core/RepoDb/Extensions/QueryFields/LiteralQueryField.cs b/RepoDb.Core/RepoDb/Extensions/QueryFields/LiteralQueryField.cs
new file mode 100644
index 00000000..ba619738
--- /dev/null
+++ b/RepoDb.Core/RepoDb/Extensions/QueryFields/LiteralQueryField.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Data;
+using RepoDb.Enumerations;
+using RepoDb.Interfaces;
+
+namespace RepoDb.Extensions.QueryFields
+{
+ ///
+ /// Query field that uses exactl what is passed.
+ ///
+ ///
+ /// See sample code below that uses a BETWEEN function.
+ ///
+ /// var where = new LiteralQueryField("ColumnName BETWEEN 1 AND 10");
+ /// var result = connection.Query<Entity>(where);
+ ///
+ ///
+ public class LiteralQueryField : QueryField
+ {
+ #region Properties
+
+ public string Literal { get; set; }
+
+ #endregion
+
+ #region Constructors
+
+ ///
+ /// Creates a new instance of object.
+ ///
+ /// The content of the where as is.
+ public LiteralQueryField(string literal)
+ // Both of the parameters are actually ignored.
+ : base("fake", Operation.Equal, null, null)
+ {
+ Literal = literal;
+ }
+
+ #endregion
+
+ #region Methods
+
+ ///
+ /// Gets the string representations (column-value pairs) of the current object with the formatted-function transformations.
+ ///
+ /// The target index.
+ /// The database setting currently in used.
+ /// The string representations of the current object using the LOWER function.
+ public override string GetString(int index,
+ IDbSetting dbSetting) =>
+ Literal;
+
+ #endregion
+ }
+}
+