cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • New to JMP? Join us Sept. 23-24 for the Early User Edition of Discovery Summit, tailor-made for new users. Register now for free!
  • Use World Cup data to build models, explore spatial relationships, and create informative visualizations in JMP. Register. July 17, 2 pm US Eastern Time.
  • Your voice matters! Tell us how you prefer to receive JMP updates, so we can tailor our communication to your needs. Take short survey.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
Arthur
Level II

SQL Query Case Sensitivity Issue

I'm using JSL to retrieve data from a MySQL database. However, I've encountered an issue where the filtering conditions in my SQL query are case-insensitive by default. This means that the results returned are the same regardless of the case of the filter value.

Here are the two scripts that produce the same results:


Script 1:

New SQL Query(
Version( 130 ),
Connection(
"ODBC:DATABASE=my_database;DSN=my_dsn;PORT=3306;PWD=my_password;SERVER=localhost;UID=my_user;"
),
QueryName( "test_data" ),
Select(
Column( "Column1", "t1" ),
Column( "Column2", "t1" ),
Column( "Column3", "t1" )
),
From( Table( "test_data", Alias( "t1" ) ) ),
Where(
Not Or(
In List(
Column( "Column1", "t1" ),
{"A"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
)
)
) << Run;

 

 

Script 2:

 

New SQL Query(
Version( 130 ),
Connection(
"ODBC:DATABASE=my_database;DSN=my_dsn;PORT=3306;PWD=my_password;SERVER=localhost;UID=my_user;"
),
QueryName( "test_data" ),
Select(
Column( "Column1", "t1" ),
Column( "Column2", "t1" ),
Column( "Column3", "t1" )
),
From( Table( "test_data", Alias( "t1" ) ) ),
Where(
Not Or(
In List(
Column( "Column1", "t1" ),
{"a"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
)
)
) << Run;

 

How can I modify the New SQL Query function in my JSL scripts to make the filtering conditions case-sensitive?

 

Thank you for your help!

5 REPLIES 5
jthi
Super User

Re: SQL Query Case Sensitivity Issue

Someone from JMP most likely knows better, but have you what the SQL query looks like? I think you can see it by converting to Custom SQL

jthi_0-1720781188385.png

 

-Jarmo
jthi
Super User

Re: SQL Query Case Sensitivity Issue

Also how is your database configured? If you run your query in some other application do you get the same results? I'm not familiar with MySQL but maybe those are by default case insensitive https://dev.mysql.com/doc/refman/8.4/en/case-sensitivity.html

-Jarmo
Arthur
Level II

Re: SQL Query Case Sensitivity Issue

The SQL statement is similar to this:

SELECT t1.`Column1`, t1.`Column2`, t1.`Column3`
FROM test_data  t1 
WHERE  (  NOT  (  (  ( t1.`Column1` IN  ( 'A' )  )  )  )  ) ;


I know that adding the BINARY keyword in SQL can enforce case sensitivity, for example:

SELECT `Column1`, `Column2`, `Column3`
FROM `test_data` AS `t1`
WHERE BINARY `Column1` NOT IN ('A');

And using the open Database function, I can execute SQL statements directly. However, I am particularly interested in whether the New SQL Query function in JSL can achieve the same case-sensitive effect.

Thank you for your assistance!

jthi
Super User

Re: SQL Query Case Sensitivity Issue

I think you might have to add custom expression to handle situations like that

jthi_2-1720971883308.png

or

jthi_1-1720971875440.png

jthi_0-1720971854215.png

 

-Jarmo
Arthur
Level II

Re: SQL Query Case Sensitivity Issue

Got it, that would be similar to referencing SQL statements in open Database function. Thanks!

Recommended Articles