我想过滤一个nvarchar
字段以仅返回数值。
我有一些 SQL 可以做到这一点,但它似乎比它需要的要复杂得多。我有兴趣找出是否有人有更好的方法来过滤掉字符串中的任何非数字字符?
IF OBJECT_ID('tempdb..#MOB') IS NOT NULL
BEGIN
DROP Table #MOB
END
SELECT [mob]
INTO #MOB
FROM (
SELECT '(00) 1234 5678' AS [mob]
UNION
SELECT '1234 5678' AS [mob]
UNION
SELECT '+61 012 345 678' AS [mob]
) AS temp
;WITH [fill] ([Num], [Index], [MOBILEPHONE])
AS
(
SELECT
CASE
WHEN [MOBILEPHONE] IS NOT NULL
THEN SUBSTRING([MOBILEPHONE], 1, 1)
ELSE NULL
END AS [Num]
, 1 AS [INDEX], [MOBILEPHONE]
FROM (
SELECT DISTINCT [mob] AS [MOBILEPHONE] …
Run Code Online (Sandbox Code Playgroud) 我收到此错误:
'geography::Point' failed because parameter 1 is not allowed to be null.
Run Code Online (Sandbox Code Playgroud)
在这个sql上:
SELECT [ID], geography::Point([lat], [long], 4326) AS [loc]
FROM (
SELECT [ID], CONVERT(float, [lat]) AS [lat], CONVERT(float, [long]) AS [long]
FROM (
SELECT [ID], [lat],
[long], ROW_NUMBER() OVER (PARTITION BY [ID] ORDER BY [EFFDT] desc) AS [sequence]
FROM [GEO]
) AS temp1
WHERE [sequence] = 1
AND [lat] IS NOT NULL
AND [long] IS NOT NULL
) AS temp2
ORDER BY [ID]
Run Code Online (Sandbox Code Playgroud)
但那里没有空值,而且我只在我们的生产计算机(Production 13.0.4422.0)上收到错误,而在我们的开发计算机(Dev 13.0.1728.2)上却没有收到错误。经过几个小时的搜索和重试后,我发现通过重新排序一些东西,这是可行的:
SELECT [ID], [loc] …
Run Code Online (Sandbox Code Playgroud) 我有一个 SQL Server 2008 实例,我想用它从 Oracle 服务器导入数据。
我已经设置了一个链接服务器,它在运行像SELECT * FROM table
. 但是,如果我声明一个变量或循环遍历表中的行或OPENQUERY
.
是否可以使用OPENQUERY
? 我需要额外的权限吗?