sql >> データベース >  >> RDS >> Sqlserver

TSQL XML列でスキルを持つ従業員を選択する方法

    比較では大文字と小文字が区別されるため、c# と C# の両方と比較する必要があります。 SQL Server 2008 では、大文字 を使用できます .

    declare @T table
    (
      ID int identity,
      Skills XML
    )
    
    insert into @T values
    ('<Skills><Skill>C#</Skill><Skill>ASP.NET</Skill><Skill>VB.NET</Skill></Skills>')
    insert into @T values
    ('<Skills><Skill>CB.NET</Skill><Skill>ASP.NET</Skill><Skill>c#</Skill></Skills>')
    insert into @T values
    ('<Skills><Skill>F#</Skill><Skill>ASP.NET</Skill><Skill>VB.NET</Skill></Skills>')
    
    select ID
    from @T
    where Skills.exist('/Skills/Skill[contains(., "C#") or contains(., "c#")]') = 1
    

    結果:

    ID
    -----------
    1
    2
    

    更新:

    これも機能します。

    select T.ID
    from @T as T
      cross apply T.Skills.nodes('/Skills/Skill') as X(N)
    where X.N.value('.', 'nvarchar(50)') like '%C#%'
    



    1. SQLiteデータベース全体をSQLファイルにエクスポートする

    2. djangoモデルフィールドでvarchar(N)の代わりにchar(N)データ型を適用する方法

    3. 重複レコードを返す

    4. MySQLは配列内の特定のJSONオブジェクトを更新します