0

ばかげた質問で申し訳ありませんが、私はSQLにかなり慣れていないので、本当に簡単なことをしようとしています。3つのテーブルで構成されるビューを作成しましたが、完全に機能します。ただし、いくつかのフィールドで何らかの形式のフォーマットを使用する必要があります。このビューを作成するためにSQLServerManagementStudioGUIを使用しています。

ビューに検証が必要な2つの列があります:GenderおよびDOB

性別には「M」、「F」、または空白のいずれかが含まれているため、ビューでこれを出力'Male'またはに変更する必要があり'Female'ます。

DOBは、フォーマットする必要のある日付のフォーマットされていない文字列が含まれていますDD/MM/YYYY

すべてのカードをテーブルに配置するために、この検証をどこに作成する必要がありますか?ビューの作成スクリプトは次のとおりです。

CREATE VIEW [dbo].[PMIPatient]
AS
   SELECT     
      dbo.refPasPatientRec8Master.Patient_Internal_number AS HospitalNumber, 
      dbo.refPasPatientRec1Master.[H+C_Number] AS NHSNumber, 
      dbo.refPasPatientRec1Master.Patient_Title AS Salutation, 
      dbo.refPasPatientRec1Master.Surname, 
      dbo.refPasPatientRec1Master.Forenames AS Forename, 
      dbo.refPasPatientRec1Master.Sex_Code AS Gender, 
      dbo.refPasPatientRec1Master.Date_of_Birth AS Dob, 
      dbo.refPasPatientRec1Master.Date_of_Death AS Dod, 
      dbo.refPasPatientRec1Master.Address_Line_1 AS Address1, 
      dbo.refPasPatientRec1Master.Address_Line_2 AS Address2, 
      dbo.refPasPatientRec1Master.Address_Line_3 AS Address3, 
      dbo.refPasPatientRec1Master.Address_Line_4 AS Address4, 
      dbo.refPasPatientRec1Master.[Postcode/Pseudo_postcode] AS Postcode, 
      dbo.refPasPatientRec8Master.Patients_Phone_Number AS Telephone1, 
      dbo.refPasPatientRec39Master.Work_Telephone_Number AS Telephone2, 
      dbo.refPasPatientRec1Master.GP_Code AS GPGMCode, 
      dbo.refPasPatientRec1Master.Death_Indicator AS deceasedFlag
FROM         
      dbo.refPasPatientRec1Master 
INNER JOIN
      dbo.refPasPatientRec39Master ON dbo.refPasPatientRec1Master.Patient_Internal_number = dbo.refPasPatientRec39Master.Patient_Internal_number 
INNER JOIN
      dbo.refPasPatientRec8Master ON dbo.refPasPatientRec1Master.Patient_Internal_number = dbo.refPasPatientRec8Master.Patient_Internal_number
4

2 に答える 2

2

これはすべて、MS-SQLを使用していることを前提としています。

Sex_Codeの戻り値を変更するには、CASEステートメントを使用します。詳細については、このリンクを参照してください。

これを変える:

dbo.refPasPatientRec1Master.Sex_Code AS Gender

これに:

CASE dbo.refPasPatientRec1Master.Sex_Code
     WHEN 'M' THEN 'Male' 
     WHEN 'F' THEN 'Female'
     ELSE 'Unknown'
END AS Gender

Date_of_Birth値をフォーマットするには、CONVERTメソッドを使用NVARCHARして、指定されたスタイル(103パラメーター)で値をに変換します。詳細については、このリンクを参照してください。

これを変える:

dbo.refPasPatientRec1Master.Date_of_Birth AS Dob

に:

CONVERT(NVARCHAR(10), dbo.refPasPatientRec1Master.Date_of_Birth, 103) AS Dob
于 2012-08-16T11:06:49.097 に答える
1

CASE式を使用して、性別を目的の形式に変換します。

適切な文字形式の数値を指定してCONVERT関数を使用して、日付を次のような特定の数値に変換します。

SELECT CONVERT(varchar(8), dbo.refPasPatientRec1Master.Date_of_Birth, 112) 

「SQLManagementStudio」で、選択した個々の列式を編集できるかどうかはわかりませんが...

于 2012-08-16T11:11:47.997 に答える