ademosh

3

Jan 30th, 2020
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. /* объединение по условию*/
  2. SELECT Worker.Worker_ID, Worker.Second_Name,Departament.Departament_Name
  3. FROM Worker
  4. INNER JOIN Departament ON (Worker.Departament_ID=Departament.Departament_ID)
  5.  
  6. /*outer join позволяет выводить всю внешнюю таблицу с автозаполнением пустых полей*/
  7.  
  8. SELECT Worker.Worker_ID, Worker.Second_Name,Departament.Departament_Name
  9. FROM Worker
  10. LEFT OUTER JOIN Departament ON (Worker.Departament_ID=Departament.Departament_ID)
  11.  
  12.  
  13. /* Декартово произв.*/
  14. SELECT * from Worker CROSS JOIN Payment
  15.  
  16.  
  17. /* Самосоединение позволяет в рамках запроса получить инфромацию о таблице+информацию
  18. о таблице с ней связанной иерархически*/
  19. SELECT Departament.Departament_ID, Departament.Departament_Name, Worker.Worker_ID
  20. FROM Departament
  21. LEFT OUTER JOIN Worker ON Worker.Departament_ID=Departament.Departament_ID
  22.  
  23. /* Эксист задает тру, если возвращены строки, и фолс, если нет.*/
  24. SELECT Worker_ID
  25. FROM Worker
  26. WHERE EXISTS (
  27. Select First_Name from Worker where First_Name = 'Петр'
  28. )
  29.  
  30. /* является аналогом конструкции ИЛИ, сокращающим запись*/
  31. SELECT * from Worker
  32. WHERE Second_Name IN('Иванов','Алексеев')
  33.  
  34.  
  35. /*перебирает все значения нужного столбца как аргумент сравнения, работает также как и сом*/
  36. SELECT * from Departament
  37. WHERE Departament_ID = ANY (SELECT Departament_ID from Worker)
  38.  
  39. /*Принимает верное значение, если каждое значение в подзапросе удовлетворяет условию*/
  40. SELECT * from Worker
  41. WHERE Worker_ID>ALL
  42. (SELECT Departament_ID from Worker WHERE Departament_ID=3)
  43.  
  44. /*Очевидненько*/
  45. SELECT * from Worker
  46. WHERE Worker_ID BETWEEN 2 AND 3
  47.  
  48. /* Отображает значения, которые подходят под заданный шаблон*/
  49. SELECT * from Payment where Payment_Type LIKE '%нал%'
  50.  
  51. /*Case является оператором условия*/
  52. SELECT DISTINCT Payment_Type,Payment_fees,
  53. CASE
  54. WHEN Payment_fees < 3.0 THEN'Все норм'
  55. ELSE 'Дороговато'
  56. END Vyvod
  57. FROM Payment
  58.  
  59. /* Преобразует тип*/
  60. SELECT CAST(12.81 AS int)
  61.  
  62. /* Позволяет форматироть данные при преобразовании, а при обратном - указывать формат*/
  63. SELECT CONVERT(char(25), CONVERT (datetime,'20030722'))
  64.  
  65. /* Заменяет пустое указанным значением*/
  66. SELECT Payment_Type,ISNULL(Payment_fees,100) from Payment
  67.  
  68. /* Возвращает нул, если аргументы равны, и первый аргумент, если нет*/
  69. SELECT NULLIF(Payment_fees,5) from Payment
  70.  
  71. /*Возвращает первое значение из списка не NULL*/
  72. SELECT COALESCE(Payment_fees,Payment_ID) AS test from Payment
  73.  
  74. SELECT CHOOSE(3,Worker_ID) from Worker
  75.  
  76. /*Проверяет логическое выражение*/
  77. SELECT IIF(Worker_ID=Departament_ID, 'Совпадает', 'Неа') from Worker
  78.  
  79. SELECT REPLACE (Payment_Type,'без','не') from Payment
  80. SELECT STUFF(Payment_Type,1,5,'a') from Payment
  81. SELECT SUBSTRING(Payment_Type,1,5) from Payment
  82.  
  83. /* числовые данные в символьные*/
  84. SELECT STR(Payment_fees,1,1) from Payment
  85. SELECT UNICODE(Payment_fees) from Payment
  86. SELECT UPPER(Payment_Type) from Payment
  87. SELECT LOWER(Payment_Type) from Payment
  88. /* Вытаскивает указанную часть даты*/
  89. SELECT DATEPART(day,'25.11.12')
  90.  
  91. SELECT DATEADD(day,7,CURRENT_TIMESTAMP)
  92.  
  93. SELECT DATEDIFF(day,DATEADD(day,7,CURRENT_TIMESTAMP),CURRENT_TIMESTAMP)
  94.  
  95. SELECT GETDATE()
  96. SELECT SYSDATETIMEOFFSET()
  97.  
  98. SELECT MAX(Detail_ID),Name from Details GROUP BY Name HAVING Name LIKE '%16%'
  99.  
  100. SELECT Worker.Worker_ID, Worker.Second_Name,Departament.Departament_Name
  101. FROM Worker
  102. FULL OUTER JOIN Departament ON (Worker.Departament_ID=Departament.Departament_ID)
  103.  
  104. SELECT * FROM Worker CROSS APPLY Clients WHERE (Worker_ID=Client_ID)
  105. SELECT * FROM Worker CROSS JOIN Clients
  106. SELECT CHOOSE(1,'Test1','Test2') as Test
Add Comment
Please, Sign In to add comment