SQLの大文字と小文字を区別する比較

クロール

2つのフィールドが同じかどうかをCASEステートメントで知りたいです。

私は次のクエリでそれを行うことができましたが、より良いアプローチがあるのだろうか?'='で大文字と小文字を区別して比較したいだけです。COLLATEを試してみましたが、結果をフィルタリングするWHERE句を使用する必要があります。すべての行が必要です。そして、HASHBYTESでは、特にISNULLと組み合わせる必要がある場合はやり過ぎのようです。

DECLARE @myTable AS TABLE (old varchar(255), new varchar(255));
INSERT INTO @myTable VALUES
    ('test', 'test'),
    ('test', 'TEST'),
    (null, null)


SELECT old, new, 
    CASE WHEN HASHBYTES('SHA2_512', old) = HASHBYTES('SHA2_512', new) THEN 'same' ELSE 'changed' END AS updated,
    CASE WHEN HASHBYTES('SHA2_512', ISNULL(old, '')) = HASHBYTES('SHA2_512', ISNULL(new, '')) THEN 'same' ELSE 'changed' END AS updated_isnull
FROM @myTable
--where old = new COLLATE Latin1_General_CS_AS

列 'updated_isnull'が必要です

| old  | new  | updated | updated_isnull |
| ---- | ---- | ------- | -------------- |
| test | test | same    | same           |
| test | TEST | changed | changed        |
| NULL | NULL | changed | same           |
GMB

適切な解決策は、データが大文字と小文字を区別する照合に格納されるように列を修正することです。次に、あなたはただするでしょう:

select old, new,
    case when old = new
             or (old is null and new is null)
         then 1
        else 0 
    end as is_same
from @mytable

大文字と小文字を区別しない照合を使用すると、次のように回避できます。

select old, new,
    case when old collate Latin1_General_Bin = new collate Latin1_General_Bin 
             or (old is null and new is null)
         then 1
        else 0 
    end as is_same
from @mytable

DB Fiddleのデモ

古い| 新規| is_same 
:--- | :--- | ------:
テスト| テスト| 1
テスト| テスト| 0 null | null | 1

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQLの大文字と小文字を区別する文字列の比較

分類Dev

SQLでの大文字と小文字を区別する文字列比較(MariaDB、MySQL)

分類Dev

文字列比較で大文字と小文字を区別する方法

分類Dev

Puppetでの大文字と小文字を区別する文字列の比較

分類Dev

大文字と小文字を区別しないリストの比較を理解する

分類Dev

大文字と小文字を区別せずに列の値を比較する-Oracle

分類Dev

大文字と小文字を区別する文字列の出現

分類Dev

大文字と小文字を区別しない文字列を比較する方法

分類Dev

文字列を大文字と小文字を区別して比較する方法は?

分類Dev

SQLで大文字と小文字を区別する方法は?

分類Dev

SQLのIN句で大文字と小文字を区別するマッチング

分類Dev

querySelectorAllの大文字と小文字の区別を無視する

分類Dev

大文字と小文字を区別せずに2つの文字列を比較する最良の方法

分類Dev

Swift言語で大文字と小文字を区別しない2つの文字列を比較する方法は?

分類Dev

大文字と小文字の区別をチェックせずに文字列を比較する

分類Dev

SQL Serverの列名で大文字と小文字を区別せず、値で大文字と小文字を区別するように定義する方法

分類Dev

MySQLの大文字と小文字を区別するwhere句

分類Dev

Laravelの大文字と小文字を区別する関係

分類Dev

MySQLで大文字と小文字を区別する際の問題

分類Dev

Djangoの大文字と小文字を区別する検索

分類Dev

ntfsの大文字と小文字を区別する方法

分類Dev

大文字と小文字の区別を無視するASP.NETValidationExpression

分類Dev

Postgresqlで大文字と小文字の区別を無効にする

分類Dev

CountIf関数に大文字と小文字の区別を追加する

分類Dev

If条件での大文字と小文字を区別しない比較

分類Dev

要素tagNameを比較するときに、大文字と小文字の区別の問題を回避できますか?

分類Dev

INリストで大文字と小文字を区別して比較する方法

分類Dev

Swift文字列での大文字と小文字を区別する文字の置換

分類Dev

2つのテーブルで大文字と小文字を区別する大文字と小文字を結合する

Related 関連記事

  1. 1

    SQLの大文字と小文字を区別する文字列の比較

  2. 2

    SQLでの大文字と小文字を区別する文字列比較(MariaDB、MySQL)

  3. 3

    文字列比較で大文字と小文字を区別する方法

  4. 4

    Puppetでの大文字と小文字を区別する文字列の比較

  5. 5

    大文字と小文字を区別しないリストの比較を理解する

  6. 6

    大文字と小文字を区別せずに列の値を比較する-Oracle

  7. 7

    大文字と小文字を区別する文字列の出現

  8. 8

    大文字と小文字を区別しない文字列を比較する方法

  9. 9

    文字列を大文字と小文字を区別して比較する方法は?

  10. 10

    SQLで大文字と小文字を区別する方法は?

  11. 11

    SQLのIN句で大文字と小文字を区別するマッチング

  12. 12

    querySelectorAllの大文字と小文字の区別を無視する

  13. 13

    大文字と小文字を区別せずに2つの文字列を比較する最良の方法

  14. 14

    Swift言語で大文字と小文字を区別しない2つの文字列を比較する方法は?

  15. 15

    大文字と小文字の区別をチェックせずに文字列を比較する

  16. 16

    SQL Serverの列名で大文字と小文字を区別せず、値で大文字と小文字を区別するように定義する方法

  17. 17

    MySQLの大文字と小文字を区別するwhere句

  18. 18

    Laravelの大文字と小文字を区別する関係

  19. 19

    MySQLで大文字と小文字を区別する際の問題

  20. 20

    Djangoの大文字と小文字を区別する検索

  21. 21

    ntfsの大文字と小文字を区別する方法

  22. 22

    大文字と小文字の区別を無視するASP.NETValidationExpression

  23. 23

    Postgresqlで大文字と小文字の区別を無効にする

  24. 24

    CountIf関数に大文字と小文字の区別を追加する

  25. 25

    If条件での大文字と小文字を区別しない比較

  26. 26

    要素tagNameを比較するときに、大文字と小文字の区別の問題を回避できますか?

  27. 27

    INリストで大文字と小文字を区別して比較する方法

  28. 28

    Swift文字列での大文字と小文字を区別する文字の置換

  29. 29

    2つのテーブルで大文字と小文字を区別する大文字と小文字を結合する

ホットタグ

アーカイブ