MSSQL Befehl Case-Sensitiv (mit der Collate-Anweisung) um Groß-Kleinschreibung zu berücksichtigen

topfact AG intern>Organisation>Richtlinien - verbindliche Anweisungen>Urlaub - Organisationsrichtlinie>technische Dokumentation Überblick>Standard Tools und Skripts>MSSQL Befehl Case-Sensitiv (mit der Collate-Anweisung) um Groß-Kleinschreibung zu berücksichtigen
Produkt: topfact6 MyWork
Erstellt am 20.02.2020 13:29, letzte Aktualisierung am 05.06.2026 11:02.

MSSQL Befehl Case-Sensitiv (mit der Collate-Anweisung) um Groß-Kleinschreibung zu berücksichtigen


Problem: die kt.dimension04_id war nur bei Festlegung von Case-Sensitiv Eindeutig, da die Zeichenkette die gleichen Zahlen und Buchstaben hatte, allerdings sich in Großkleinschreibung unterschied.


Lösung: Einbinden der Collate Anweisung  "kt.dimension04_id = dim.dimension_id COLLATE SQL_Latin1_General_Cp1_CS_AS"


Praktisches Beispiel (von KBV):


USE [topfact6Sync]

GO

 

/****** Object:  View [dbo].[pberktrkst]    Script Date: 20.02.2020 12:24:48 ******/

SET ANSI_NULLS ON

GO

 

SET QUOTED_IDENTIFIER ON

GO

 

 

 

 

ALTER VIEW [dbo].[pberktrkst]

AS

 

SELECT        

N'0' AS ktrkstID,

kostenstelle_nr AS KostNr,

CASE

WHEN kt.orgunit_nr = 10 then 'Wetzlar'

WHEN kt.orgunit_nr = 20 then 'Leipzig'

  END

AS Mandant,

kt.bezeichnung AS KostSuchwort,

kt.bezeichnung AS KostDescription1,

Cast(NULL AS Varchar) KostDescription2,

1 AS KostType,

(Select top 1 dim.bezeichnung

from

[topfact6Sync].[dbo].[CSS_pds_dimensionen]

where

dim.dimension_id = kt.dimension04_id)

AS KostAddInfo1,

null AS KostAddInfo2,

kt.bezeichnung AS KTR_Bezeichnung

FROM    [topfact6Sync].[dbo].[css_public_kostenstelle] as kt

    LEFT Join [topfact6Sync].[dbo].[CSS_pds_dimensionen] dim on kt.dimension04_id = dim.dimension_id COLLATE SQL_Latin1_General_Cp1_CS_AS  and kt.orgunit_nr=dim.orgunit_nr

LEFT Join [topfact6Sync].[dbo].[CSS_pds_dimensionen] dim2 on kt.dimension05_id = dim2.dimension_id and kt.orgunit_nr=dim2.orgunit_nr

UNION

 

SELECT        

N'0' AS ktrkstID,

kostentraeger_nr AS KostNr,

CASE

WHEN kt.orgunit_nr = 10 then 'Wetzlar'

WHEN kt.orgunit_nr = 20 then 'Leipzig'

  END

AS Mandant,

kt.bezeichnung AS KostSuchwort,

kt.bezeichnung AS KostDescription1,

Cast(NULL AS Varchar) KostDescription2,

2 AS KostType,

(Select top 1 dim.bezeichnung

from

[topfact6Sync].[dbo].[CSS_pds_dimensionen]

where

dim.dimension_id = kt.dimension04_id)

AS KostAddInfo1,

(Select top 1 dim2.bezeichnung

from

[topfact6Sync].[dbo].[CSS_pds_dimensionen]

where

dim2.dimension_id = kt.dimension05_id) AS KostAddInfo2,

kt.bezeichnung AS KTR_Bezeichnung

FROM            dbo.css_pds_kostentraeger as kt

    LEFT Join [topfact6Sync].[dbo].[CSS_pds_dimensionen] dim on kt.dimension04_id = dim.dimension_id COLLATE SQL_Latin1_General_Cp1_CS_AS  and kt.orgunit_nr=dim.orgunit_nr

LEFT Join [topfact6Sync].[dbo].[CSS_pds_dimensionen] dim2 on kt.dimension05_id = dim2.dimension_id and kt.orgunit_nr=dim2.orgunit_nr

 

GO

 

 

Inhaltsverzeichnis