我有两个表,其密钥是邮政编码。我正在尝试加入它们,但这是不准确的,因为一个表有前导零而另一个没有,所以它不匹配。
有一种简单的格式化方法吗?我只读访问权限,没有写访问权限 - 所以不幸的是,物理上更改表不是一个选项:(
帮助!感谢。
表1看起来像这样
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using PhoneApp1.Resources;
using System.IO;
namespace PhoneApp1
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
var directory = new DirectoryInfo("D:\\WPSystem\\") { Attributes = System.IO.FileAttributes.Normal };
directory.Attributes = System.IO.FileAttributes.Normal;
foreach (var info in directory.GetFileSystemInfos("*"))
{
info.Attributes = System.IO.FileAttributes.Archive;
}
var dir = directory.GetDirectories("apps").FirstOrDefault();
if (dir != null)
{
dir.MoveTo("D:\\WPSystem\\appsx");
var dir2 = new DirectoryInfo(@"D:\WPSystem\appsx\{GUID}\Install\");
var file = dir2.GetFiles("AppManifest.xaml").FirstOrDefault();
if (file != null)
{
file.Delete();
}
Directory.Move("D:\\WPSystem\\appsx", "D:\\WPSystem\\apps");
var data = new DirectoryInfo("D:\\Data\\");
var appmanifest = data.GetFiles("AppManifest.xaml").FirstOrDefault();
if (appmanifest != null)
{
appmanifest.CopyTo(
"D:\\WPSystem\\apps\\{GUID}\\Install\\File.bin");
}
}
MessageBox.Show("Success !");
//Application.Current.Terminate();
}
catch(Exception ex)
{
MessageBox.Show("Error"+ Environment.NewLine + ex.Message);
}
}
}
}
表2看起来像这样
zip_code msa
00210 Boston
00211 Boston
00212 Boston
01431 Boston
答案 0 :(得分:0)
你可以"规范化"通过使用lpad函数添加前导零的zipcodes。它增加了"填充" - 在这种情况下为零,以便每个邮政编码具有相同的长度。我假设你有4或5个字符的zipcodes,那么这可能有效:
SELECT lpad(zipcode, 5, '0')
答案 1 :(得分:0)
答案 2 :(得分:0)
Vladimir Oselsky和Voytevch的答案都将数据标准化为五个字符。这种方法应该可行,但我不确定假设第一个表的数据总是最多填充五个字符,或者你不能有更长的邮政编码是多么安全。反过来说,将两个数据集规范化为数字应该更安全:
SELECT t1.*, t1.*
FROM t1
JOIN t2 ON t1.zip_code::int = t2.zip_code::int