"IGNORE NULLS"を使用してNULLを無視することができなくなりました。BOOL_OR関数を使用する際には、BOOL_OR(col1, col2)のように省略せずに使用する必要があります。
sql
Copy code
-- Before
SELECT COUNT() FROM table WHERE BOOL_OR(col1, col2) IGNORE NULLS;
-- After
SELECT COUNT() FROM table WHERE BOOL_OR(col1, col2);
CONCAT関数には、二つ以上の引数が必要になりました。以前は、一つの引数でも使用することができましたが、今後は使用できません。
sql
Copy code
-- Before
SELECT CONCAT(col1) FROM table;
-- After
SELECT CONCAT(col1, '') FROM table;
GROUP BY句で、ネストされた列名を使用する場合には、ダブルクォーテーションで囲む必要があります。
sql
Copy code
-- Before
SELECT "user"."name" FROM dataset GROUP BY user.name;
-- After
SELECT "user"."name" FROM dataset GROUP BY "user"."name";
MINUTE()関数には、YEAR TO MONTHのインターバルを渡すことができなくなりました。代わりに、EXTRACT関数を使用する必要があります。
sql
Copy code
-- Before
SELECT minute(interval '1 year 2 months');
-- After
SELECT extract(minute from interval '1 year 2 months');
ORDER BY句で使用する式は、SELECTリストに含める必要があります。以前は、SELECTリストに含まれていなくても使用できましたが、今後は使用できません。
sql
Copy code
-- Before
SELECT DISTINCT col1 FROM table ORDER BY col2;
-- After
SELECT DISTINCT col1, col2 FROM table ORDER BY col2;
SYSTEM_TIMEとSYSTEM_VERSION句が非推奨となり、代わりに、FOR TIMESTAMP AS OF句を使用する必要があります。
sql
Copy code
-- Before
SELECT * FROM TABLE FOR SYSTEM_TIME AS OF '2022-03-04 10:00:00';
-- After
SELECT * FROM TABLE FOR TIMESTAMP AS OF '2022-03-04 10:00:00';
DECIMAL型への変換がサポートされなくなりました。例えば、VARCHAR型からDECIMAL型への変換はできません。
sql
Copy code
-- Before
ALTER TABLE table ALTER COLUMN col1 TYPE varchar;
-- After
ALTER TABLE table ALTER COLUMN col1 TYPE decimal;
文字列からTIMESTAMP型に変換する際に、日付と時刻の間にスペースを入れる必要があります。以前は、スペースがなくても使用できましたが、今後は使用できません。
sql
Copy code
-- Before
SELECT CAST('2021-06-06-23:38:46' AS timestamp) AS this_time;
-- After
SELECT CAST('2021-06-06 23:38:46' AS timestamp) AS this_time;
More than 1 year has passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme