Skip to main content
added 316 characters in body
Source Link
Lukasz Szozda
  • 182.7k
  • 26
  • 280
  • 328

Using Snowflake SEARCH function combined with * EXCLUDE()* EXCLUDE()/* ILIKE()* ILIKE():

SELECT *
FROM mre_table
WHERE SEARCH((* EXCLUDE (ID)), 'my-data-val', SEARCH_MODE => 'EXACT');

For sample data:

CREATE OR REPLACE TABLE mre_table(
  ID INT,
  COL1 STRING,
  COL2 STRING,
  COL3 STRING,
  COL4 DATE
);

INSERT INTO mre_table VALUES 
(1, 'my-data-val', 'a','b',CURRENT_DATE()),
(2, 'z', 'a','b',CURRENT_DATE()),
(3, 'z', 'a','my-data-val',CURRENT_DATE());

Output:

enter image description here


Alternatively using ARRAY_CONTAINS:

WITH cte AS (
  SELECT *, ARRAY_CONSTRUCT(* ILIKE 'COL%') AS arr
  FROM mre_table
)
SELECT * EXCLUDE (arr)
FROM cte
WHERE ARRAY_CONTAINS('my-data-val'::VARIANT, arr);

Using Snowflake SEARCH combined with * EXCLUDE()/* ILIKE():

SELECT *
FROM mre_table
WHERE SEARCH((* EXCLUDE (ID)), 'my-data-val', SEARCH_MODE => 'EXACT');

For sample data:

CREATE OR REPLACE TABLE mre_table(
  ID INT,
  COL1 STRING,
  COL2 STRING,
  COL3 STRING,
  COL4 DATE
);

INSERT INTO mre_table VALUES 
(1, 'my-data-val', 'a','b',CURRENT_DATE()),
(2, 'z', 'a','b',CURRENT_DATE()),
(3, 'z', 'a','my-data-val',CURRENT_DATE());

Output:

enter image description here

Using Snowflake SEARCH function combined with * EXCLUDE()/* ILIKE():

SELECT *
FROM mre_table
WHERE SEARCH((* EXCLUDE (ID)), 'my-data-val', SEARCH_MODE => 'EXACT');

For sample data:

CREATE OR REPLACE TABLE mre_table(
  ID INT,
  COL1 STRING,
  COL2 STRING,
  COL3 STRING,
  COL4 DATE
);

INSERT INTO mre_table VALUES 
(1, 'my-data-val', 'a','b',CURRENT_DATE()),
(2, 'z', 'a','b',CURRENT_DATE()),
(3, 'z', 'a','my-data-val',CURRENT_DATE());

Output:

enter image description here


Alternatively using ARRAY_CONTAINS:

WITH cte AS (
  SELECT *, ARRAY_CONSTRUCT(* ILIKE 'COL%') AS arr
  FROM mre_table
)
SELECT * EXCLUDE (arr)
FROM cte
WHERE ARRAY_CONTAINS('my-data-val'::VARIANT, arr);
Source Link
Lukasz Szozda
  • 182.7k
  • 26
  • 280
  • 328

Using Snowflake SEARCH combined with * EXCLUDE()/* ILIKE():

SELECT *
FROM mre_table
WHERE SEARCH((* EXCLUDE (ID)), 'my-data-val', SEARCH_MODE => 'EXACT');

For sample data:

CREATE OR REPLACE TABLE mre_table(
  ID INT,
  COL1 STRING,
  COL2 STRING,
  COL3 STRING,
  COL4 DATE
);

INSERT INTO mre_table VALUES 
(1, 'my-data-val', 'a','b',CURRENT_DATE()),
(2, 'z', 'a','b',CURRENT_DATE()),
(3, 'z', 'a','my-data-val',CURRENT_DATE());

Output:

enter image description here