希望创建一个与空间数据类型相对应的列的sql db。
做了一些研究,发现了这篇文章:
将纬度/经度(晚/长)转换为地理点
因此,正如本文所述,我已经创建了表,并使用给定的脚本插入了一些测试数据:
CREATE TABLE [dbo].[Landmark] (
[ID] INT IDENTITY(1, 1),
[LandmarkName] VARCHAR(100),
[Location] VARCHAR(50),
[Latitude] FLOAT,
[Longitude] FLOAT
)
GO
INSERT INTO [dbo].[Landmark] ( [LandmarkName], [Location], [Latitude], [Longitude] )
VALUES ( 'Statue of Liberty', 'New York, USA', 40.689168,-74.044563 ),
( 'Eiffel Tower', 'Paris, France', 48.858454, 2.294694),
( 'Leaning Tower of Pisa', 'Pisa, Italy', 43.72294, 10.396604 ),
( 'Great Pyramids of Giza', 'Cairo, Egypt', 29.978989, 31.134632 ),
( 'Sydney Opera House', 'Syndey, Australia', -33.856651, 151.214967 ),
( 'Taj Mahal', 'Agra, India', 27.175047, 78.042042 ),
( 'Colosseum', 'Rome, Italy', 41.890178, 12.492378 )
GO
ALTER TABLE [dbo].[Landmark]
ADD [GeoLocation] AS geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' + CAST([Latitude] AS VARCHAR(20)) + ')', 4326)
GO
SELECT *
FROM dbo.Landmark
Statue of Liberty| New York, USA| 40.689168|-74.044563
Eiffel Tower| Paris, France| 48.858454| 2.294694
Leaning Tower of Pisa| Pisa, Italy| 43.72294| 10.396604
Great Pyramids of Giza| Cairo, Egypt| 29.978989| 31.134632
Sydney Opera House| Syndey, Australia| -33.856651| 151.214967
Taj Mahal| Agra, India| 27.175047| 78.042042
Colosseum| Rome, Italy| 41.890178| 12.492378
因此,我使用OPENROWSET打开CSV文件,并将其格式化为行,而不是一个长字符串(不幸的是,OPENROWSET
就是这样读取CSV文件的)。我使用了splitstring
函数:https://stackoverflow.com/a/19935594/3680098
现在我需要把这些好友变成列,而不是一个字符串。我使用了SO上提供的答案:https://stackoverflow.com/a/15108499/3680098
总结一下,这是一个问题:
SELECT LTRIM(RTRIM(xmlValue.value('/values[1]/value[1]','nvarchar(100)'))) AS LandmarkName
, LTRIM(RTRIM(xmlValue.value('/values[1]/value[2]','nvarchar(100)'))) AS Location
, LTRIM(RTRIM(xmlValue.value('/values[1]/value[3]','nvarchar(20)'))) AS Lon
, LTRIM(RTRIM(xmlValue.value('/values[1]/value[4]','nvarchar(20)'))) AS Lat
, GEOGRAPHY::STPointFromText('POINT(' + xmlValue.value('/values[1]/value[4]','nvarchar(20)') + ' ' + xmlValue.value('/values[1]/value[3]','nvarchar(20)') + ')', 4326)
FROM dbo.SplitString((SELECT Document.* FROM OPENROWSET(BULK N'C:\Temp\test.csv', SINGLE_CLOB) AS Document), CHAR(10)) AS T
CROSS APPLY (SELECT CAST('<values><value>' + REPLACE(T.Value, '|', '</value><value>') + '</value></values>' AS XML)) AS T1(xmlValue);
CREATE TABLE [dbo].[Landmark] (
[ID] INT IDENTITY(1, 1),
[LandmarkName] VARCHAR(100),
[Location] VARCHAR(50),
[GeoLocation] GEOGRAPHY
)
GO
INSERT INTO dbo.Landmark (LandmarkName, Location, GeoLocation)
SELECT LTRIM(RTRIM(xmlValue.value('/values[1]/value[1]','nvarchar(100)'))) AS LandmarkName
, LTRIM(RTRIM(xmlValue.value('/values[1]/value[2]','nvarchar(100)'))) AS Location
, GEOGRAPHY::STPointFromText('POINT(' + xmlValue.value('/values[1]/value[4]','nvarchar(20)') + ' ' + xmlValue.value('/values[1]/value[3]','nvarchar(20)') + ')', 4326)
FROM dbo.SplitString((SELECT Document.* FROM OPENROWSET(BULK N'C:\Temp\test.csv', SINGLE_CLOB) AS Document), CHAR(10)) AS T
CROSS APPLY (SELECT CAST('<values><value>' + REPLACE(T.Value, '|', '</value><value>') + '</value></values>' AS XML)) AS T1(xmlValue)
想要知道更多东西吗?当你需要从表中查找某些值时,可以使用冗长的 case 语句或 selectors 实现,但更整洁的方式是使用 extlookup 函数实现。 在 puppetmaster 上可以使用 extlookup 函数查询外部的 CSV 文件,并返回匹配的数据片段。 将所有数据组织到一个单一的文件并将它从 Puppet 配置清单中分离出来, 可以使维护工作变得更简单,也便于与其他人分享:
本文向大家介绍如何在R中从Github导入CSV文件数据?,包括了如何在R中从Github导入CSV文件数据?的使用技巧和注意事项,需要的朋友参考一下 如果您在Github上有一个csv文件,则可以通过使用其URL直接将其导入R中,但是请确保在存储数据的Github页面上单击Raw选项。许多人没有单击Raw选项,因此他们阅读HTML而不是CSV并感到困惑。在这里,我正在共享一个包含数据集列表的公共
我试图从csv文件导入数据。但它不起作用。有人能帮我吗? 我的简历文件: 用户名、密码usr1、pswd1 usr2、pswd2、usr3、pswd 3。。。。。 我的CSV数据集配置: 文件名:D:\Jmeter\Data\Login。csv变量名称:用户名、密码是否允许引用数据?:EOF上的真正回收?:错误EOF?上的停止线程:真的 但在请求正文中,用户名和密码没有反映出来 POST 数据:
问题内容: 我有以下结构的csv文件: 使用以下MySQL函数如何导入MySQL表的第一和第三列: 我为我的英语道歉! 提前致谢 ! 问题答案: 您可以指定列,并将不需要的列标记为“ @dummy”。 替换,并且只要你喜欢。要设置不在数据文件中的其他列,您可以这样做: 作为进一步的参考,我建议您看一下MySQL参考。
问题内容: 我有一些要导入mySQL的CSV数据文件。我想在shell脚本中进行插入,以便可以将其自动化。但是,我对在脚本中使用明文形式输入用户名和密码感到有些厌倦 我有以下问题: 我对脚本中明文中的uname / pwd的想法感到不满意(反正还是这样,还是我太偏执)?也许我可以为插入表设置仅具有INSERT特权的用户? 数据库表(导入原始数据的数据库表)具有基于表列的唯一键。我尝试导入的数据中也
问题内容: 将CSV文件读入pandas DataFrame的Python方法是什么(然后我可以将其用于统计操作,可以具有不同类型的列等)? 我的CSV文件具有以下内容: 在R中,我们将使用以下命令读取此文件: 这将返回R data.frame: 有没有Python的方法来获得相同的功能? 问题答案: 救援熊猫: 这会返回与相似的pandas DataFrame。