Other NCHAR SQL function


1. Usage of NCHAR to format company name

SQL Server Query 1

            
 SELECT TOP 5  
CustomerID,
CompanyName + ' (' + NCHAR(169) + ')' AS CompanyNameWithCopyright
FROM
Customers;

Create SQL query with SqlQueryBuilder 1

            
 var (sql1, parameters1) = new SqlQueryBuilder()  
.Select().Top(5)
.Columns("CustomerID")
.Column(new CONCAT(new Column("CompanyName"), " ", new NCHAR(169)), "CompanyNameWithCopyright")
.From("Customers")
.Build();

Query build by SqlQueryBuilder 1

            
SELECT TOP 5 CustomerID,
             CONCAT(CompanyName, @pMAIN_2507192103021767430, NCHAR(169)) AS CompanyNameWithCopyright
FROM Customers;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192103021767430

Query Results 1:

  CustomerID CompanyNameWithCopyright
1 ALFKI Alfreds Futterkiste ©
2 ANATR Ana Trujillo Emparedados y helados ©
3 ANTON Antonio Moreno Taquería ©
4 AROUT Around the Horn ©
5 BERGS Berglunds snabbköp ©


2. Usage of NCHAR to to format product info

SQL Server Query 2

            
 SELECT  
'Product: ' + ProductName + ' ' + NCHAR(0x200E) + ' (Description)' AS FormattedProductInfo
FROM
Products
WHERE ProductID IN (1, 2);

Create SQL query with SqlQueryBuilder 2

            
 var (sql2, parameters2) = new SqlQueryBuilder()  
.Select()
.Column(new CONCAT("Product: ", new Column("ProductName"),
" ", new NCHAR(0x200E), " (Description)"), "FormattedProductInfo")
.From("Products")
.Where(new Where(new IN(new Column("ProductID"), 1, 2)))
.Build();

Query build by SqlQueryBuilder 2

            
SELECT CONCAT(@pMAIN_2507192103021794110, ProductName, @pMAIN_2507192103021794111, NCHAR(8206), @pMAIN_2507192103021794112) AS FormattedProductInfo
FROM Products
WHERE ProductID IN (@pMAIN_2507192103021794113, @pMAIN_2507192103021794114);


            
        

Parameters (If used)

Name Value
@pMAIN_2507192103021794110 Product:
@pMAIN_2507192103021794111
@pMAIN_2507192103021794112 (Description)
@pMAIN_2507192103021794113 1
@pMAIN_2507192103021794114 2

Query Results 2:

  FormattedProductInfo
1 Product: Chai ‎ (Description)
2 Product: Chang ‎ (Description)


3. Usage of NCHAR to show formatted currency

SQL Server Query 3

            
 SELECT  
o.OrderID,
c.CompanyName,
o.OrderDate,
od.UnitPrice * od.Quantity AS TotalAmount,
CASE
WHEN c.Country = 'USA' THEN '$' + CAST(od.UnitPrice * od.Quantity AS NVARCHAR)
WHEN c.Country = 'France' THEN NCHAR(0x20AC) + ' ' + CAST(od.UnitPrice * od.Quantity AS NVARCHAR) -- Euro symbol
WHEN c.Country = 'Japan' THEN NCHAR(0x00A5) + CAST(od.UnitPrice * od.Quantity AS NVARCHAR) -- Yen symbol
ELSE '$' + CAST(od.UnitPrice * od.Quantity AS NVARCHAR) -- Default to USD
END AS LocalizedTotal
FROM
Orders o
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID
JOIN
Customers c ON o.CustomerID = c.CustomerID
WHERE o.OrderID IN (10248, 10249, 10250);

Create SQL query with SqlQueryBuilder 3

            
 var (sql3, parameters3) = new SqlQueryBuilder()  
.Select()
.Column("o.OrderID", "OrderID")
.Column("c.CompanyName", "CompanyName")
.Column("o.OrderDate", "OrderDate")
.Column(new ColumnArithmatic().Column("od.UnitPrice").MULTIPLY().Column("od.Quantity"), "TotalAmount")
.Column(new CASE()
.When(new Column("c.Country").Equale("USA"))
.Then(new CONCAT("$", new CAST(new ColumnArithmatic().Column("od.UnitPrice").MULTIPLY().Column("od.Quantity"), SqlDataType.NVARCHAR)))
.When(new Column("c.Country").Equale("France"))
.Then(new CONCAT(new NCHAR(0x20AC), " ", new CAST(new ColumnArithmatic().Column("od.UnitPrice").MULTIPLY().Column("od.Quantity"), SqlDataType.NVARCHAR)))
.When(new Column("c.Country").Equale("Japan"))
.Then(new CONCAT(new NCHAR(0x00A5), " ", new CAST(new ColumnArithmatic().Column("od.UnitPrice").MULTIPLY().Column("od.Quantity"), SqlDataType.NVARCHAR)))
.Else(new CONCAT("$", new CAST(new ColumnArithmatic().Column("od.UnitPrice").MULTIPLY().Column("od.Quantity"), SqlDataType.NVARCHAR)))
, "LocalizedTotal")
.From("Orders", "o")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName(new Table("[Order Details]","od"))
.On(new Column("o.OrderID").Equale(new Column("od.OrderID"))),
new INNERJOIN().TableName(new Table("Customers","c"))
.On(new Column("o.CustomerID").Equale(new Column("c.CustomerID")))
})
.Where(new Where(new IN(new Column("o.OrderID"), 10248, 10249, 10250)))
.Build();

Query build by SqlQueryBuilder 3

            
SELECT o.OrderID AS OrderID,
       c.CompanyName AS CompanyName,
       o.OrderDate AS OrderDate,
       od.UnitPrice * od.Quantity AS TotalAmount,
       CASE WHEN c.Country = @pMAIN_2507192103021822720 THEN CONCAT(@pMAIN_2507192103021822721, CAST (od.UnitPrice * od.Quantity AS NVARCHAR)) WHEN c.Country = @pMAIN_2507192103021822722 THEN CONCAT(NCHAR(8364), @pMAIN_2507192103021822723, CAST (od.UnitPrice * od.Quantity AS NVARCHAR)) WHEN c.Country = @pMAIN_2507192103021822724 THEN CONCAT(NCHAR(165), @pMAIN_2507192103021822725, CAST (od.UnitPrice * od.Quantity AS NVARCHAR)) ELSE CONCAT(@pMAIN_2507192103021822726, CAST (od.UnitPrice * od.Quantity AS NVARCHAR)) END AS LocalizedTotal
FROM Orders AS o
     INNER JOIN
     [Order Details] AS od
     ON o.OrderID = od.OrderID
     INNER JOIN
     Customers AS c
     ON o.CustomerID = c.CustomerID
WHERE o.OrderID IN (@pMAIN_2507192103021822727, @pMAIN_2507192103021822728, @pMAIN_2507192103021822729);


            
        

Parameters (If used)

Name Value
@pMAIN_2507192103021822720 USA
@pMAIN_2507192103021822721 $
@pMAIN_2507192103021822722 France
@pMAIN_2507192103021822723
@pMAIN_2507192103021822724 Japan
@pMAIN_2507192103021822725
@pMAIN_2507192103021822726 $
@pMAIN_2507192103021822727 10248
@pMAIN_2507192103021822728 10249
@pMAIN_2507192103021822729 10250

Query Results 3:

  OrderID CompanyName OrderDate TotalAmount LocalizedTotal
1 10248 Vins et alcools Chevalier 7/4/1996 12:00:00 AM 168.0000 € 168.00
2 10248 Vins et alcools Chevalier 7/4/1996 12:00:00 AM 98.0000 € 98.00
3 10248 Vins et alcools Chevalier 7/4/1996 12:00:00 AM 174.0000 € 174.00
4 10249 Toms Spezialitäten 7/5/1996 12:00:00 AM 167.4000 $167.40
5 10249 Toms Spezialitäten 7/5/1996 12:00:00 AM 1696.0000 $1696.00
6 10250 Hanari Carnes 7/8/1996 12:00:00 AM 77.0000 $77.00
7 10250 Hanari Carnes 7/8/1996 12:00:00 AM 1484.0000 $1484.00
8 10250 Hanari Carnes 7/8/1996 12:00:00 AM 252.0000 $252.00


4. Usage of NCHAR to show encoded customer ids

SQL Server Query 4

            
 SELECT TOP 15  
CustomerID,
SUBSTRING(CustomerID, 1, 1) +
CASE SUBSTRING(CustomerID, 2, 1)
WHEN 'L' THEN NCHAR(0x214C) -- Script L
WHEN 'F' THEN NCHAR(0x191) -- Latin Capital Letter F with Hook
WHEN 'K' THEN NCHAR(0x212A) -- Kelvin Sign
ELSE SUBSTRING(CustomerID, 2, 1)
END +
SUBSTRING(CustomerID, 3, 5) AS EncodedCustomerID
FROM
Customers;

Create SQL query with SqlQueryBuilder 4

            
 var (sql4, parameters4) = new SqlQueryBuilder()  
.Select().Top(15)
.Column("CustomerID", "CustomerID")
.Column(new CONCAT(
new SUBSTRING(new Column("CustomerID"), 1, 1),
new CASE(new SUBSTRING(new Column("CustomerID"), 2, 1))
.When("L").Then(new NCHAR(0x214C))
.When("F").Then(new NCHAR(0x191))
.When("K").Then(new NCHAR(0x212A))
.Else(new SUBSTRING(new Column("CustomerID"), 2, 1)),
new SUBSTRING(new Column("CustomerID"), 3, 5)
), "EncodedCustomerID")
.From("Customers")
.Build();

Query build by SqlQueryBuilder 4

            
SELECT TOP 15 CustomerID AS CustomerID,
              CONCAT(SUBSTRING(CustomerID, @pMAIN_2507192103021955320, @pMAIN_2507192103021955321), CASE SUBSTRING(CustomerID, @pMAIN_2507192103021955322, @pMAIN_2507192103021955323) WHEN @pMAIN_2507192103021955324 THEN NCHAR(8524) WHEN @pMAIN_2507192103021955325 THEN NCHAR(401) WHEN @pMAIN_2507192103021955326 THEN NCHAR(8490) ELSE SUBSTRING(CustomerID, @pMAIN_2507192103021955327, @pMAIN_2507192103021955328) END, SUBSTRING(CustomerID, @pMAIN_2507192103021955329, @pMAIN_250719210302195532_10)) AS EncodedCustomerID
FROM Customers;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192103021955320 1
@pMAIN_2507192103021955321 1
@pMAIN_2507192103021955322 2
@pMAIN_2507192103021955323 1
@pMAIN_2507192103021955324 L
@pMAIN_2507192103021955325 F
@pMAIN_2507192103021955326 K
@pMAIN_2507192103021955327 2
@pMAIN_2507192103021955328 1
@pMAIN_2507192103021955329 3
@pMAIN_250719210302195532_10 5

Query Results 4:

  CustomerID EncodedCustomerID
1 ALFKI A⅌FKI
2 ANATR ANATR
3 ANTON ANTON
4 AROUT AROUT
5 BERGS BERGS
6 BLAUS B⅌AUS
7 BLONP B⅌ONP
8 BOLID BOLID
9 BONAP BONAP
10 BSBEV BSBEV
11 CACTU CACTU
12 CENTC CENTC
13 CHOPS CHOPS
14 CONSH CONSH
15 DRACD DRACD