SQL Server:对具有XML列的不同表进行排序

时间:2017-05-27 14:26:15

标签: c# sql sql-server xml

我有一个表,我需要做一个独特的,因为它有一些重复,然后需要对它进行排序并将XML加入一列。

以下是我的尝试:

Select * 
From TableA
Where TableID ='1234'
  And Convert(nvarchar(max), xmlcolumn) in (Select Distinct Convert(nvarchar(max), xmlcolumn))

以上确实为我列出了清单,也没有删除重复项。

Select distinct convert (nvarchar(max), xmlcolumn)
From TableA
Where TableID ='1234'
Order By TableID

以上内容返回所需内容,但如果我按顺序执行(如上所示),我会收到错误:

  

如果指定了选区,则按项目排序必须出现在选择列表中

我不想在select语句中输入TableID,因为我不想在结果中使用它。其次,如何将XML(转换为nvarchar以转换为不同的)转换回XML以导出到C#。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以使用whole_data这样删除重复的行

$whole_tab = "CREATE TABLE IF NOT EXISTS whole_tab (
    p_id int(100) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    agentName varchar(400),
    price int(100),
    grossArea varchar(100),
    postCode varchar(50),
    pricePerSqFt varchar(100),
    prType varchar(100),
    contact varchar(200),
    prDesc varchar(5000),
    prImgs varchar(3000),
    prPdf varchar(1000),
    prAddress varchar(1000)
  )";
$con->query($whole_tab);//Connect to table
//Table one end

  $room_tab = "CREATE TABLE IF NOT EXISTS room_tab (
    r_id int(100) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    bedRooms int(100),
    bathRooms int(100),
    otherList varchar(3000),
    from_p_id int(100) REFERENCES whole_tab(p_id) 
   )";
  $con->query($room_tab);//Connect to table

//INSERTION

$ins_whole_tab = "INSERT INTO whole_tab VALUES(NULL,'$agName','$prPrice','$prGrossArea','$postCode','$prPerSqFt','$radioSel','$prContact','$prDesc','$imgPathsJson','$pdfPath','$prAddress')";
$con -> query($ins_whole_tab);


//Insert Data
$ins_room_tab = "INSERT INTO room_tab VALUES(NULL,'$bedRNum','$bathRNum','$otherRDet','')";
$con -> query($ins_room_tab);