Ich verwende JSL, um Daten aus einer MySQL-Datenbank abzurufen. Allerdings ist mir ein Problem aufgefallen, bei dem die Filterbedingungen in meiner SQL-Abfrage standardmäßig nicht zwischen Groß- und Kleinschreibung unterscheiden. Das bedeutet, dass die zurückgegebenen Ergebnisse unabhängig von der Groß- und Kleinschreibung des Filterwerts gleich sind.
Hier sind die beiden Skripte, die die gleichen Ergebnisse liefern:
Skript 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;
Skript 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?
Ich danke Ihnen für Ihre Hilfe!
Jemand von JMP weiß es wahrscheinlich besser, aber wissen Sie, wie die SQL-Abfrage aussieht? Ich denke, Sie können es sehen, indem Sie es in benutzerdefiniertes SQL konvertieren

Und wie ist Ihre Datenbank konfiguriert? Wenn Sie Ihre Abfrage in einer anderen Anwendung ausführen, erhalten Sie dieselben Ergebnisse? Ich kenne mich mit MySQL nicht aus, aber vielleicht wird dort standardmäßig nicht zwischen Groß- und Kleinschreibung unterschieden : https://dev.mysql.com/doc/refman/8.4/en/case-sensitivity.html
Die SQL-Anweisung sieht ungefähr so aus:
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.
Vielen Dank für Ihre Hilfe!
Ich denke, Sie müssen möglicherweise einen benutzerdefinierten Ausdruck hinzufügen, um solche Situationen zu bewältigen

oder


Got it, that would be similar to referencing SQL statements in open DatabaseFunktion. Danke!